解決hibernate+mysql寫入數據庫亂碼

數據庫通過hibernate自動的寫入entity類。但是插入到mysql數據庫時,出現中文亂碼問題。我把所有涉及到的文件都修改成utf8編碼,但是還是無效。

昨晚自己認爲是mysql的問題,搞了好久,還是沒解決。今天早上,靈機一動,想:也許是hibernate的問題。就上網搜‘hibernate mysql編碼問題’,果然解決了,好開心啊。

同時也再想,我們遇到的問題,其實有很多解決辦法,只是我們找錯了解決方向。

下面我貼出答案,同時感謝網友,腳本之家


hibernate.cfg.xml加上屬性. 
<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">UTF-8</property> 
mysql 的驅動用3.0.15以上版本的, 
加個Filter, 使用UTF-8字符集就可以了, 
若使用Spring則寫在spring中的sessionFactory裏即可。 
例如: 
<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<!-- Generated by MyEclipse Hibernate Tools. --> 
<hibernate-configuration> 
<session-factory> 
<property name="connection.username">root</property> 
<property name="connection.url"> 
jdbc:mysql://localhost:3306/hibernate_table 
</property> 
<property name="dialect"> 
org.hibernate.dialect.MySQLDialect 
</property> 
<property name="myeclipse.connection.profile"> 
mySql hibernatetable 
</property> 
<property name="connection.password">12345678</property> 
<property name="connection.driver_class"> 
com.mysql.jdbc.Driver 
</property> 
<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">UTF-8</property> 
<property name="show_sql">true</property> 
<property name="format_sql">true</property> 
<mapping resource="cn/com/hibernate/Demo/Guestbook.hbm.xml" /> 
<mapping resource="cn/com/hibernate/Demo/GMapping.hbm.xml" />


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章