hibernate mysql寫入中文亂碼 解決

hibernate mysql寫入中文亂碼 解決

啓動hibernate項目,自動創建表,插入數據之後發現寫入表裏的數據裏的中文是亂碼。按如下方法解決了:

  1. 修改數據庫的字符集爲UTF-8,這個可以通過mysql的客戶端軟件裏右鍵要修改的數據庫的屬性更改。

  2. 修改Client默認字符集爲UTF8。windows下在mysql安裝目錄(我的計算機操作系統是Windows 7 64,默認的安裝路徑在:C:\Program Files (x86)\MySQL\MySQL Server 5.0)下找到my.ini,將裏面的default-character-set=latin1 改爲default-character-set=UTF8,然後重起mysql服務即可將數據庫默認字符集改爲utf8。

  3. 在項目的hibernate的配置文件hibernate.cfg.xml裏修改name爲“hibernate.connection.url"的property的值爲:jdbc:mysql://localhost:3306/tdm?useUnicode=true&characterEncoding=UTF-8,其中tdm爲數據庫的名稱。

  4. 然後啓動項目,執行代碼,插入的中文就不會是亂碼了。

    &amp”是什麼意思?
    "&"就是'&'
    只是在HTML中的&用&來表示

    比如你要得到'&nbsp'的字符串,而不是空格,那就用&nbsp

    XML有5個轉義符: < >& " '

直接用&連接的話,報錯如下

正確配置如下:

hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost:3306/hib2019?useUnicode=true&amp;characterEncoding=UTF-8
        </property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        
        <property name="hbm2ddl.auto">update</property>
        <property name="show_sql">true</property>
        
        <mapping resource="com/jxq/model/User.hbm.xml" />
    </session-factory>

</hibernate-configuration>

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