今天在一台新的CentOS機器上使用c3p0連接池操作mysql數據庫出現中文亂碼問題,具體表現為:查詢時無中文亂碼問題,寫數據時中文亂碼,查看了機器上數據庫字符集也是UTF8,應該不會出現中文亂碼才對,最后在c3p0配置文件中 jdbcUrl后加上:?useUnicode=true&characterEncoding=UTF8 中文就不會亂碼了。
原始c3p0-config.xml
com.mysql.jdbc.Driver
jdbc:mysql://ricky.test.com:3306/data_production
bingbing
bingbing
15
30
20
5
2000
修改后的c3p0-config.xml
com.mysql.jdbc.Driver
jdbc:mysql://ricky.test.com:3306/data_production?useUnicode=true&characterEncoding=UTF8
bingbing
bingbing
15
30
20
5
2000
注意由於我使用的XML配置文件,所以 &需要轉義為 &
OK,搞定!