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

不言
リリース: 2018-10-11 15:06:27
転載
2300 人が閲覧しました

この記事の内容は、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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート