Comment définir les propriétés useUnicode = true et characterEncoding = utf8 sur une connexion JDBC MySQL gérée par Spring

Je suis actuellement à la construction d'un Spring MVC webapp et la base de données est vitale backend partie. Quelle que soit la raison, toutefois, le Printemps refuse de traiter les données en UTF-8. Depuis les points de vue, des ressources et des navigateurs sont configurés pour Unicode, et sont donc les tables dans la base de données (et aussi la lecture de quelques questions similaires posées), j'ai établi que le problème réside dans la connexion de base de données.

Le Pilote JDBC doit être fourni deux éléments dans connectionProperties: useUnicode (mis à oui et characterEncoding (mis à utf8). Il s'avère, cependant, il est impossible.

JDBC est un haricot, et en tant que tel est configuré via un fichier XML, comme suit:

<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/<database>" />
<property name="username" value="<not telling>" />
<property name="password" value="<not telling>" />

Cette configuration convertit tous les caractères non-alphanumériques tiré de la base de données (telles que des flèches, ou des lettres grecques) en points d'interrogation. Ce qui est évidemment inacceptable.

J'ai essayé plusieurs solutions: spécifié l'URL JDBC comme jdbc:mysql://localhost:3306/<database>?useUnicode=yes&amp;characterEncoding=utf8joué avec my.ini fichier (et MySQL Workbench) à force de tout dans la base de données par défaut pour utf8 charset, et quelque chose qui a causé le plus grand des maux de tête: l'ajout de <property name="connectionProperties" value="useUnicode=yes;characterEncoding=utf8" />. S'avère, il est littéralement impossible de définir deux connectionProperties au sein d'un seul haricot, parce que... il n'y a aucun caractère de séparation mentionné nulle part (la fève va tenter de le lire car en essayant de mettre en yes;characterEncoding=utf8 que la valeur de useUnicode). Donc ma question est: comment je utf8?

source d'informationauteur Haxton Fale