Metod för att registrera en person i databas
Hur gör jag om jag vill koda en actionPerformed metod som ska registera en person i sql databas. Jag har redan kodat knapparna i applikationen. Personen ska ha registeringsdatum och telefon nummer. Det ska även vara en kontroll så att datumet är i 2007-01-12 format. Det här har jag hittils
public void actionPerformed(ActionEvent e) {
int datum = JTextFieldNamn.getText();
int Telefon = JTextFieldNamn.getText();
String query = "INSERT Alien SET telefon = '"+telefon+"', Datum = '"+Datum;
MySQL.con.insert(query);
}
Det är svårt att säga någonting utan att veta vilket ramverk och vilka bibliotek du använder.
Men
1) Du uppenbarligen har skapat en klass som heter JTextFieldNamn. Namnet indikerar att denna komponent används för att mata in namnet. Om du använder denna klass för att även mata in datum och telefonnummer, bör du hitta ett bättre namn.
2) Du kan inte anropa getText() på klassen, du behöver ett objekt. Du måste ha en instruktion någonstans som skapar denna komponent:
JTextFieldNamn nameField = new JTextFieldNamn();
...
3) getText() returnerar String och inte int
4) Ett variabelnamn ska börja med gemen, och inte med versal (det är konvention, best practice)
5) MySQL.con.insert(query); - Det förstår jag inte alls. Man brukar skapa en Statement och anropa execute() på den.
5) Det är farligt att använda textfragment från input direkt i en databasoperation. This is a classic: https://xkcd.com/327/