java.sql.SQLException

Von in netzthetik

… Value ‘0000-​00-​00’ can not be rep­re­sen­ted as java.sql.Date. So wur­de ich heu­te von mei­ner Lieblings-​IDE Net­Be­ans tro­cken begrüßt. Soll­te Ihr Edi­tor ähn­li­che Kon­ver­sa­ti­on mit Ihnen pfle­gen, erfah­ren Sie hier, was ihm am Her­zen liegt und wie Sie für freund­li­che­ren Umgang sor­gen können.

Ich habe mir heu­te die aktu­el­le Ver­si­on 6.8 gezo­gen und bin beim Quer­le­sen des Chan­ge­logs auf den SQL Edi­tor auf­merk­sam gewor­den. Die Ver­si­on 6.7 ver­füg­te hier noch über kei­ne Auto­ver­voll­stän­di­gung, die soll aber nun fer­tig­ge­stellt wor­den sein. Da ich ja noto­ri­scher phpMy­Ad­min-Benut­zer bin und zum MyS­QL Que­ry Brow­ser nur grei­fe, wenn ers­te­rer am Ser­ver nicht ver­füg­bar ist (und ich über die Kon­so­le an Gren­zen sto­ße), war ich auf eine Alter­na­ti­ve, die sich gleich in der Ent­wick­lungs­um­ge­bung befin­det, sehr neu­gie­rig. Als mir dann aber Net­Be­ans gleich nach der drit­ten Que­ry eine Java-​Exception hin­rotz­te, hät­te ich den SQL-​Editor fast gleich wie­der geschlos­sen. Dabei ist das Pro­blem ganz ein­fach zu lösen.

Java kann ein lee­res Datum nur in ein Datums-​Objekt auf­neh­men, wenn es von der Daten­bank als NULL über­ge­ben wird. Für MyS­QL ist ein lee­res Datum aber, even­tu­ell, nicht NULL, son­dern 0000-​00-​00. Über die Pro­ble­ma­tik von 0000-​00-​00 und NULL in Datums­spal­ten wird hier aus­führ­lich dis­ku­tiert. Wer aber nicht sein Daten­bank­de­sign über den Hau­fen wer­fen möch­te, nur damit die Ent­wick­lungs­um­ge­bung wie­der funk­tio­niert, kann sich wie folgt recht schnell helfen:

Unter “Ser­vices” und “Data­ba­ses” las­sen sich die Eigen­schaf­ten der Ver­bin­dungs­auf­nah­me von Net­Be­ans zur Daten­bank ein­stel­len. In der Zei­le “Data­ba­se URL” steht so etwas Ähn­li­ches wie “jdbc:mysql://localhost:3306/databasename”. Die­se Adres­se muss man ein­fach durch fol­gen­den GET-​Parameter erweitern:

jdbc:mysql://localhost:3306/databasename?zeroDateTimeBehavior=convertToNull

Ich den­ke, das soll­te selbst­er­klä­rend sein.
So funk­tio­niert der SQL Edi­tor, wie erwar­tet. Und der Umgang hat sich auch gleich wie­der gebessert.

Share on LinkedInShare on Redditshare on TumblrShare on StumbleUponDigg thisShare on FacebookGoogle+Tweet about this on TwitterEmail to someone