首頁 >Java >java教程 >Hibernate插入資料時遇到中文亂碼報錯的解決方法

Hibernate插入資料時遇到中文亂碼報錯的解決方法

不言
不言轉載
2018-10-11 15:06:282319瀏覽

這篇文章帶給大家的內容是關於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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除