2010-11-05 10 views
0

J'ai un projet Java connecté à une base de données MySQL.
Lorsque je communique entre les deux en utilisant executeQuery (query) tout semble bien se passer avec le codage, MAIS j'ai quelques formes CRUD autogénérées qui lancent des exceptions quand des caractères spécifiques de codage sont utilisés.
Par exemple. quand je cours INSERT INTO db (id,name) VALUES (1,'ŠĐŽČĆšđžčć')
depuis Java tout va bien, mais quand je mets à jour la base de données via le code autogéré du gestionnaire d'entités de persistance, parfois je reçois une exception, parfois je remplace certains caractères par '?'. Notez que CERTAINS et non TOUS les caractères sont remplacés. Alors, comment régler le codage sur le code autogénéré pour qu'il fonctionne bien aussi?
TNX!Java autogénéré Codage de la connexion à la base de données MySQL

+0

montrez votre 'persistence.xml' – Bozho

+0

il est dans la section anwser ... – Andrej

+0

mais ce n'est pas une réponse - éditer yo ur question et ajoutez-le là. Puis supprimez la réponse. – Bozho

Répondre

0

si vous utilisez jsp ajoutez ceci sur une page:

<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8" %> 

EDIT: Je été mal orienté avec des formes CRUD mais néanmoins je laisse ...

Vous pouvez voir ©, mais vous ne pouvez pas voir ć et č, non? Essayez ceci:

mis character_set_server variable UTF8 si elle est définie à latin1

0

Voici la persistence xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="kemoton_dbPU" transaction-type="RESOURCE_LOCAL"> 
    <provider>oracle.toplink.essentials.PersistenceProvider</provider> 
    <class>...</class> 
    <properties> 
     <property name="toplink.jdbc.user" value="root"/> 
     <property name="toplink.jdbc.password" value=""/> 
     <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/kemoton_db?characterEncoding=UTF-8"/> 
     <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

BTW @ trix: il est une application de bureau ...

Questions connexes