1. 程式人生 > >Hibernate 3.2 與MySQL 5.6插入中文亂碼問題

Hibernate 3.2 與MySQL 5.6插入中文亂碼問題

我的環境是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&amp;characterEncoding=UTF-8</property>

 

如果用hibernate.properties進行配置
#hibernate.connection.url jdbc:mysql://localhost:3306/HiberTest?useUnicode=true&characterEncoding=UTF-8

終於解決了。

費了我一個早上,走了那麼多彎路。

加油,路人共勉!