1. 程式人生 > >Hibernate對mysql操作時的編碼問題

Hibernate對mysql操作時的編碼問題

我的專案中使用的是hibernate框架操作資料庫,顯示資料庫的資料一切正常,但是在執行新增、修改、搜尋的時候,中文字元都出現亂碼,新增的是亂碼的記錄,模糊查詢的中文搜尋查不出來資料。直到我修改完編碼格式才恢復正常。 1、用eclipse啟動專案時報錯,啟動超過45秒,無法啟動成功

 找到eclipse的工作空間workspace,開啟下面的.metadata檔案,再找到下面的.plugins檔案,找到org.eclipse.wst.server.core檔案,開啟servers.xml檔案    檔案中有個屬性   start-timeout="45" 代表啟動如果超過45秒,就會報錯。可以修改到更大的數值,如150或者200秒 2、要修改eclipse中的編碼格式        file--properies----Resource中有一個編碼格式:other修改為utf8        右鍵單擊專案---properties---Resource/Java Build Path/Java Compiler       Window----preferences-----General和XML都要選擇編碼格式,General下面的workspace 3、修改資料庫的編碼格式       新建資料庫的時候編碼格式選擇utf8,排序規則選擇utf8_general_ci 4、修改mysql的安裝檔案my.ini中的編碼格式,預設為latin1

     開啟mysql的安裝目錄,找到my.ini或者my_default.ini

 新版本的mysql可能在mysql安裝目錄下沒有my.ini檔案,安裝到了另外一個目錄下,找到c:ProgramData---mysql--mysql Server 5.7,下面就有。     在[client]下新增: default-character-set=utf8     在[mysqld]下新增:default-character-set=utf8 或者修改default-character-set=utf8
5、修改專案中連線資料庫的配置檔案的編碼格式     在jdbc.properties中配置jdbc.url=jdbc:mysql://localhost:3306/nsfw?useUnicode=true&characterEncoding=UTF-8 要加上後面的編碼格式 6、修改hibernate配置檔案中的編碼格式hibernate.cfg.xml   在connection.url後面也要加上編碼格式   <property name="connection.url">
         jdbc:mysql://localhost:3306/tansinglepage?useUnicode=true&amp;characterEncoding=UTF-8
     </property>
或者: <!-- 設定編碼格式 -->

  <property name="hibernate.connection.useUnicode">true</property> 
  <property name="hibernate.connection.characterEncoding">UTF-8</property>

<!-- 配置方言 -->
  <property name="hibernate.dialect">com.shzy.dialect.CustomerDialect</property>

重啟專案  別忘了url後面加的?useUnicode=true&amp;characterEncoding=utf8