com.mysql.jdbc.MysqlDataTruncation-Fehler - aber warum?

snoopysalive

Mitglied
Hallo!

Ich habe folgendes Problem: Ich habe ein Programm geschrieben, welches Einträge in eine Datenbank schreibt. Zu manchen Einträgen soll ein Kommentar mit angegeben werden. Zu diesem Zweck enthält die entsprechende MySQL-Tabelle eine Spalte 'comment' des Datentyps TEXT.

Wenn ich nun aber einen etwas längeren Kommentar eingebe, wirft Java folgende Fehlermeldung:
com.mysql.jdbc.MysqlDataTruncation: Data too long for column 'comment' in row 1

Mit 'etwas länger' meine ich Strings, die so aussehen können: "Hallo, das hier ist ein Testkommentar, den ich mir schnell ausgedacht habe, damit ihr wisst, wie lang ein 'etwas längerer' Kommentar sein kann."

Mit kommt der Fehler seltsam vor, eben weil die Spalte 'comment' vom Datentyp TEXT ist und lange Kommentare problemlos aufnimmt, wenn man dies manuell in der Shell tut.

Kennt sich jemand damit aus?

Gruß,
Matthias
 
Ja, damit hat's geklappt. Man muss die MySQL-Verbindung einfach mit einem Properties-Objekt aufbauen.

Java:
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = String.format("jdbc:mysql://%s/%s",
                                     HOST, DB);
Properties p = new Properties();
p.setProperty("user", USER);
p.setProperty("password", PASSWORD);
p.setProperty("jdcbCompliantTruncation", "false");
Connection mysql = DriverManager.getConnection(url, p);

Danach wird jede beliebige String-Länge akzeptiert.

Danke!
 
Man beachte beim c&p:

p.setProperty("jdbcCompliantTruncation", "false");

Nicht den Tippfehler jdcb mitkopieren :)
 

Neue Beiträge

Zurück