2007/09/20

Hibernate mit MySQL und UTF8

Bin dabei mich in JPA (mit Hibernate) einzuarbeiten. Als kleine Beispielanwendung parse ich dazu eine Webseite und speichere Teile davon in einer MySQL Datenbank. Soweit so gut, das Buch 'Java Persistence with Hibernate' hat mir sehr beim Verständnis geholfen.

Ein Problem, das sich Auftat betraf das Speichern von UTF8 Daten in der MySQL Datenbank mittels Hibernate.

Geholfen haben letztlich die folgenden Schritte:

1. Anlegen der DB mit UTF8 Zeichensatz:

mysql> create database mydb charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)


2. Erweitern der JDBC URL in der persistence.xml:
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/aeintel13b?useUnicode=true&amp;characterEncoding=utf8" />


Testweise (hier auf diesem Laptop) hatte ich eigentlich mit Oracle 10g arbeiten wollen, aber leider ist es mir hier nicht gelungen, UTF8 in die DB zu bekommen. Dazu muss wohl die ganze DB mit UTF8 Support angelegt werden. Da allerdings schon einiges an Daten enthalten ist (in anderen Shemas) war das nicht wirklich eine Option.

1 comments:

smitty said...

Hi,
es gibt noch einen eleganteren weg, der die Codierung der Datenbank umgeht: siehe http://www.my-container.de/index.php/2008/01/08/hibernate-table-character-encoding-beeinflussen/

cu!
Martin