當時(shí)很頭疼,做了很長(cháng)時(shí)間的javaEE,怎么還有這樣的問(wèn)題存在,當時(shí)查了很多資料,感覺(jué)都不能滿(mǎn)意,終于有一次在google上面看英文的解說(shuō)(英語(yǔ)不好,一般都是跳過(guò)英文的),老外的意思是需要在Hibernate連接數據庫的字符串里面追加字符編碼格式,比如請求hello這個(gè)數據庫,那么請求的連接字符是:
但是連接了,發(fā)現界面和后臺答應出來(lái)的還是“???”,.當時(shí)特別郁悶,沒(méi)辦法,還是繼續看國外的一些文章,最后終于明白,這種寫(xiě)法是沒(méi)有問(wèn)題的,關(guān)鍵的錯誤問(wèn)題的存在“&”,要把上面的“&”修改為“&”,我實(shí)驗了一些,結果這種方式的確可以解決“??”這種情況
完整的寫(xiě)法:jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8
所以以后大家如果出現了這種問(wèn)題,就需要為Hibernate的連接url添加字符編碼了哦!
========================================
mysql官方提供的JDBCDriver,其JAVA類(lèi)名為:com.mysql.jdbc.Driver
mysql JDBC URL格式如下:
jdbc:mysql://[host:port]/[database][?參數名1][=參數值1][&參數名2][=參數值2]...
參數名稱(chēng)
user
password
useUnicode
characterEncoding
autoReconnect
autoReconnectForPools
failOverReadOnly
maxReconnectsautoReconnect
initialTimeoutautoReconnect
connectTimeout
socketTimeout
對應中文環(huán)境,通常mysql連接URL可以設置為:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
在使用數據庫連接池的情況下,最好設置如下兩個(gè)參數:
autoReconnect=true&failOverReadOnly=false
需要注意的是,在xml配置文件中,url中的&符號需要轉義。比如在tomcat的server.xml中配置數據庫連接池時(shí),mysqljdbc url樣例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
Trackback:http://tb.blog.csdn.net/TrackBack.aspx?PostId=569304
聯(lián)系客服