jdbc.properties特殊符号&导致查询中文乱码

jdbc.properties特殊符号&amp导致查询中文乱码

最近项目出现了一个比较神奇的问题,最开始数据库连接密码写在了applicationContext.xml文件,数据库查询正常。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/fibo_service?useUnicode=true&amp;characterEncoding=UTF-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>1234</value>
</property>
</bean>

现在把他拿到了jdbc.properties,外边统一管理,然后查询时中文就GG了。

错误的配置:

1
2
3
4
mysql.jdbc.driverClassName=com.mysql.jdbc.Driver
mysql.jdbc.url=jdbc:mysql://localhost:3306/zqhl-reg?useUnicode=true&amp;characterEncoding=UTF-8
mysql.jdbc.username=root
mysql.jdbc.password=1qaz4321

在往外抽取时偷了个懒,直接把数据库连接复制了出去,找了半天才发现是&amp;的锅。

正确的配置:

1
2
3
4
mysql.jdbc.driverClassName=com.mysql.jdbc.Driver
mysql.jdbc.url=jdbc:mysql://localhost:3306/zqhl-reg?useUnicode=true&characterEncoding=UTF-8
mysql.jdbc.username=root
mysql.jdbc.password=1qaz4321

原因:&amp;是xml里面的转义字符,在jdbc.properties文件中不能使用直接使用&就好了。

1
2
3
4
5
6
7
8
9
10
11
12
jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]...

对应中文环境,通常mysql连接URL可以设置为:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false

在使用数据库连接池的情况下,最好设置如下两个参数:
autoReconnect=true&failOverReadOnly=false

需要注意的是,在xml配置文件中,url中的&符号需要转义成&。
比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&amp;password=&amp;useUnicode=true&amp;characterEncoding=gbk
&amp;autoReconnect=true&amp;failOverReadOnly=false

参考文档:

https://www.cnblogs.com/yokoboy/archive/2013/03/01/2939315.html

-------------已经触及底线 感谢您的阅读-------------

本文标题:jdbc.properties特殊符号&导致查询中文乱码

文章作者:趙小傑~~

发布时间:2017年11月29日 - 15:12:33

最后更新:2019年09月16日 - 19:34:10

原始链接:https://cnsyear.com/posts/260e39c8.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%