今天在测试使用C3P0数据库连接池时,发现了org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 90; 对实体 “useSSL” 的引用必须以 ‘;’ 分隔符结尾。 的错误。仔细查看发现url参数也没写错,后来网上百度了一下,这里记录下两个有效方法。
这是我原先报错的配置信息
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test?
characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai</property>
<property name="user">root</property>
<property name="password">root</property>
如果把useSSL=false删掉,或者在后面加";"也还是报错。原因是“&”符号问题。xml语言里,每当数据中有’<’、’&'等符号时,封装的XML就无法解析,有特殊意义。比如<
代表<,&
代表&等。
解决方法一:使用&
代表&
jdbc:mysql://localhost:3306/test?
characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
解决方法二:使用<![CDATA[ ]]>来解决
<![CDATA[jdbc:mysql://localhost:3306/test?
characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai]]>
使用<![CDATA[ ]]>会将[]中的代码按纯文本解析。
栏目