這篇文章帶給大家的內容是關於Hibernate插入資料時遇到中文亂碼報錯的解決方法,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
錯誤描述
程式運行,將資料插入資料(包含中文)報錯:\xE6\xB2 \x88\xE9\x9B\xAA...
##但是自己另外新建一個資料庫手動插入資料中文正常,同樣修改資料庫,表的編碼之後同樣不行。而且 MySQL5.7下也會出現這種情況無法解決。
#########問題解決#########在Hibernate 主設定檔中,我們會設定資料庫方言,一般配置如下:#########<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>#########查看其對應原始碼可以查看到有個方法,如下:#########
@Override public String getTableTypeString() { return "ENGINE=InnoDB"; }### ######所以我們可以自訂一個類,重寫上面方法,如下:#########
package com.taohan.util; import org.hibernate.dialect.MySQL5InnoDBDialect; public class HibernateEncodeAdapter MySQL5InnoDBDialect { @Override public String getTableTypeString() { return "ENGINE=InnoDB DEFAULT CHARSET=utf8"; } }#########最後修改Hibernate 主設定文件,指定資料庫方言類別為我們自訂的那個,如下:#########
<property name="dialect">com.taoahn.util.HibernateEncodeAdapter</property>##########當然,最好是同時在Hibernate 主設定檔的設定資料庫連線路徑後加上 ### ####?useUnicode=true&characterEncoding=UTF-8,如下:###############
<property name="hibernate.connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
以上是Hibernate插入資料時遇到中文亂碼報錯的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!