この記事の内容は、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 サイトの他の関連記事を参照してください。