Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich bin gerade dabei ein Datenbankprogramm zu schreiben. In Textfelder werden entsprechenden Daten geschrieben und später per Knopfdruck in die Datenbank eingetragen. Ich hätte nun gerne eine vorherige Abfrage, ob der Anwender das richtige Datenformat benutzt hat. Bei Jahr z.b. eine 4-stellige INT Zahl und beim Datum das Format YYYY-MM-DD. Kann mir die Jemand einen kleinen Code posten wie ich sowas überprüfen kann bevor das dann in die Datenbank geschrieben wird ?
Vielen dank schonmal,
Giana Sisters
Hmm, das hat doch nichts mit meiner Frage zu tun... Wie kann ich nachsehen, ob z.b. ein String aus einer Liste nicht länger als 35Zeichen ist oder der Int nur 4 Stellen haben darf. Damit er gut in die Datenbank reingeschrieben werden kann ?!
Also "YYYY-MM-DD" sieht für mich aalglatt nach einem Datum aus und mit nem SimpleDateFormatter kannst schauen, ob das sogar ein vernünftiges Datum ist.
Das mit dem vierstelligen int kannst du über ein if lösen, in dem du schaust, dass die Zahl kleiner gleich 9999 ist. Oder wenn du führende Nullen brauchst, kannst du dafür entweder ein Numberformatter nehmen bzw. schreibst die Zahl in einen String und schreibst noch entsprechende Nullen davor. Da gibt es die StringUtils von Apacha Common für
Die Länge eines Strings ist jetzt nicht wirklich dein Ernst? Da nimmst einfach die Länge des Strings und guckst nach, ob die Länge kleiner 35 ist.
Außerdem kannst du das auch einfach in die DB schreiben und die Exceptions auswerten, dafür schuf iwer das Excpetion-Handling
Alles klar... Hast ja recht... Danke Andererseits ist das Jahrfeld immer noch nicht gesichert, wenn es < 9999 ob es bei Strings dann rummäckert.. Aber wird schon irgendwie zu finden sein.
Um es nochmal zu erklären... Klar mit String.length() hab ich auch gearbeitet um sicher zu sein, dass sich die Chars in der Datenbank nicht übertreffen. Mir gehts hier um das Feld z.b. Jahr welches in meiner Datenbank als INT hinterlegt wurde.
Ich kann ja hier nicht überprüfen, ob das Feld ein Integer ist und dann auch noch die richtige länge hat. Also ich würde halt gerne bevor man auf "in die Datenbank schreiben" klickt eine Überprüfung bekommt ob alles richtig eingegeben wurde (und nicht erst auf die Exception der Datenbank dann warten). Das hab ich bereits mit den leeren Feldern gemacht. Aber wenn man beim Jahr 199r z.b. einträgt soll er nicht speichern, weil das ja kein Int mehr ist... Vielleciht ist das alles eine einfache Sache die ich jetzt nicht gerade blicke... sorry
bei Integer.parseInt des Feldes und vor der Überprüfung ob der gepraste String ein Int < 9999 ist.
Ansonsten Regex : [\d]{4}
edit: Im übrigen kann ich dich schon verstehen, dass du nicht auf DB-Exceptions warten möchtest aber die Validierung von Benutzereingaben ist so alt wie Java selbst.
Oder vielleicht noch eleganter: Nur Zahlen als Eingabe ins Textfeld erlauben und die Länge auf 4 Zeichen beschränken. Dafür würde sich z. B. PlainDocument (Java Platform SE 6) eignen.