首頁 > Java > java教程 > 主體

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

不言
發布: 2018-10-11 15:06:27
轉載
2299 人瀏覽過

這篇文章帶給大家的內容是關於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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板