Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre le problème de l'erreur tronquée en chinois lorsque Hibernate insère des données

不言
Libérer: 2018-10-11 15:06:27
avant
2300 Les gens l'ont consulté

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>
Copier après la connexion

Voir le code source correspondant et vous verrez qu'il existe une méthode, comme suit :

@Override  
public String getTableTypeString()
{  
  return "ENGINE=InnoDB";  
}
Copier après la connexion

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";    
    }  
}
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal