Hibernate 3.2 與MySQL 5.6插入中文亂碼問題
阿新 • • 發佈:2018-11-08
我的環境是Spring 3.0.5+Hibernate 3.2 與MySQL 5.6 WEB專案,在使用者模組中建立使用者時需要將使用者物件寫入表中。
在UserDaoImpl中採用getHibernateTemplate().saveOrUpdate(user);實現,英文和數字完全沒問題。
中文使用者名稱時,在除錯輸出的hql語句中,name屬性也是正確的,可是寫入MySQL表中之後成亂碼 ???
查了資料庫字符集設定,是UTF-8,沒錯啊;
我以為應該是hibernate配置的問題吧?
於是試著直接更改表格中的name欄位,此時可以正確顯示出中文名字。
既然可以查出中文欄位,那麼,是不是不需要配置了呢?
額,納悶了啊~~
我又改了我的專案的編碼,設定成UTF-8,但是還是同樣的問題。
惱了,真惱了~
查了谷歌,發現需要對connection.url進行更改。
用hibernate.cfg.xml進行配置:
<property name="connection.url">jdbc:mysql://localhost:3306/HiberTest?useUnicode=true&characterEncoding=UTF-8</property>
如果用hibernate.properties進行配置
#hibernate.connection.url jdbc:mysql://localhost:3306/HiberTest?useUnicode=true&characterEncoding=UTF-8
終於解決了。
費了我一個早上,走了那麼多彎路。
加油,路人共勉!