ホームページ  >  記事  >  Java  >  Hibernate がデータを挿入するときに中国語が文字化けするエラーの問題を解決する方法

Hibernate がデータを挿入するときに中国語が文字化けするエラーの問題を解決する方法

不言
不言転載
2018-10-11 15:06:282304ブラウズ

この記事の内容は、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 を次のように指定します。

以上がHibernate がデータを挿入するときに中国語が文字化けするエラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。