Le contenu de cet article concerne la solution au message d'erreur chinois tronqué lorsque Hibernate insère des données. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela vous sera utile.
Description de l'erreur
Le programme s'exécute et insère des données (y compris le chinois) dans la table Erreur : xE6xB2. x88xE9x9BxAA...
Mais lorsque je crée une nouvelle base de données et que j'insère manuellement des données en chinois, cela fonctionne très bien non plus après avoir modifié la base de données et encodé la table. De plus, cette situation se produira également sous MySQL5.7 et ne pourra pas être résolue.
Solution du problème
Dans le fichier de configuration principal d'Hibernate, nous allons configurer la base de données dialecte , la configuration générale est la suivante :
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
Voir le code source correspondant et vous verrez qu'il existe une méthode, comme suit :
@Override public String getTableTypeString() { return "ENGINE=InnoDB"; }
Nous pouvons donc personnaliser une classe et réécrire la méthode ci-dessus comme suit :
package com.taohan.util; import org.hibernate.dialect.MySQL5InnoDBDialect; public class HibernateEncodeAdapter MySQL5InnoDBDialect { @Override public String getTableTypeString() { return "ENGINE=InnoDB DEFAULT CHARSET=utf8"; } }
Modifiez enfin le fichier de configuration principal d'Hibernate, spécifiez la classe de dialecte de la base de données que nous avons personnalisée, comme suit :
<property name="dialect">com.taoahn.util.HibernateEncodeAdapter</property>
Bien sûr, c'est Il est préférable de le définir dans le fichier de configuration principal d'Hibernate en même temps. Ajoutez ?useUnicode=true&characterEncoding=UTF-8 après le chemin de connexion à la base de données, comme suit :
<property name="hibernate.connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!