java.sql.SQLException
December 15, 2009
Ich habe mir heute die aktuelle Version 6.8 gezogen und bin beim Querlesen des Changelogs auf den SQL Editor aufmerksam geworden. Die Version 6.7 verfügte hier noch über keine Autovervollständigung, die soll aber nun fertiggestellt worden sein. Da ich ja notorischer phpMyAdmin-Benutzer bin und zum MySQL Query Browser nur greife, wenn ersterer am Server nicht verfügbar ist (und ich über die Konsole an Grenzen stoße), war ich auf eine Alternative, die sich gleich in der Entwicklungsumgebung befindet, sehr neugierig. Als mir dann aber NetBeans gleich nach der dritten Query eine Java-Exception hinrotzte, hätte ich den SQL-Editor fast gleich wieder geschlossen. Dabei ist das Problem ganz einfach zu lösen.
Java kann ein leeres Datum nur in ein Datums-Objekt aufnehmen, wenn es von der Datenbank als NULL übergeben wird. Für MySQL ist ein leeres Datum aber, eventuell, nicht NULL, sondern 0000-00-00. Über die Problematik von 0000-00-00 und NULL in Datumsspalten wird hier ausführlich diskutiert. Wer aber nicht sein Datenbankdesign über den Haufen werfen möchte, nur damit die Entwicklungsumgebung wieder funktioniert, kann sich wie folgt recht schnell helfen:
Unter "Services" und "Databases" lassen sich die Eigenschaften der Verbindungsaufnahme von NetBeans zur Datenbank einstellen. In der Zeile "Database URL" steht so etwas Ähnliches wie "jdbc:mysql://localhost:3306/databasename". Diese Adresse muss man einfach durch folgenden GET-Parameter erweitern:
jdbc:mysql://localhost:3306/databasename?zeroDateTimeBehavior=convertToNull
Ich denke, das sollte selbsterklärend sein.
So funktioniert der SQL Editor, wie erwartet. Und der Umgang hat sich auch gleich wieder gebessert.
Java kann ein leeres Datum nur in ein Datums-Objekt aufnehmen, wenn es von der Datenbank als NULL übergeben wird. Für MySQL ist ein leeres Datum aber, eventuell, nicht NULL, sondern 0000-00-00. Über die Problematik von 0000-00-00 und NULL in Datumsspalten wird hier ausführlich diskutiert. Wer aber nicht sein Datenbankdesign über den Haufen werfen möchte, nur damit die Entwicklungsumgebung wieder funktioniert, kann sich wie folgt recht schnell helfen:
Unter "Services" und "Databases" lassen sich die Eigenschaften der Verbindungsaufnahme von NetBeans zur Datenbank einstellen. In der Zeile "Database URL" steht so etwas Ähnliches wie "jdbc:mysql://localhost:3306/databasename". Diese Adresse muss man einfach durch folgenden GET-Parameter erweitern:
jdbc:mysql://localhost:3306/databasename?zeroDateTimeBehavior=convertToNull
Ich denke, das sollte selbsterklärend sein.
So funktioniert der SQL Editor, wie erwartet. Und der Umgang hat sich auch gleich wieder gebessert.


Trackbacks