Der Inhalt dieses Artikels befasst sich mit der Lösung der verstümmelten chinesischen Fehlermeldung, wenn Hibernate Daten einfügt. Ich hoffe, dass er für Sie hilfreich ist.
Fehlerbeschreibung
Das Programm wird ausgeführt und fügt Daten (einschließlich Chinesisch) in die Tabelle ein: xE6xB2 x88xE9x9BxAA...
Aber wenn ich eine neue Datenbank erstelle und Daten manuell in Chinesisch einfüge, funktioniert es auch nicht, nachdem ich die Datenbank geändert und die Tabelle codiert habe. Darüber hinaus tritt diese Situation auch unter MySQL5.7 auf und kann nicht gelöst werden.
Problemlösung
In der Hibernate-Hauptkonfigurationsdatei konfigurieren wir die Datenbank Dialekt, die allgemeine Konfiguration ist wie folgt:
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
Sehen Sie sich den entsprechenden Quellcode an und Sie können sehen, dass es eine Methode wie folgt gibt:
@Override public String getTableTypeString() { return "ENGINE=InnoDB"; }
So können wir eine Klasse anpassen und die obige Methode wie folgt umschreiben:
package com.taohan.util; import org.hibernate.dialect.MySQL5InnoDBDialect; public class HibernateEncodeAdapter MySQL5InnoDBDialect { @Override public String getTableTypeString() { return "ENGINE=InnoDB DEFAULT CHARSET=utf8"; } }
Zuletzt ändern die Hibernate-Hauptkonfigurationsdatei und geben Sie den Datenbankdialekt an. Die Klasse ist die, die wir wie folgt angepasst haben:
<property name="dialect">com.taoahn.util.HibernateEncodeAdapter</property>
Natürlich ist es am besten,
<property name="hibernate.connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des verstümmelten chinesischen Fehlers, wenn Hibernate Daten einfügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!