Avatar billede meho_tarevci Nybegynder
05. december 2004 - 18:09 Der er 10 kommentarer og
1 løsning

træk og indsæt data i en MySQL-database

Hej folks,
Her er endnu et spørgsmål om MySQL og Java!

Jeg har oprettet en forbindelse til min MySQL database, og det fungere fint.
Også alt det med driver – det har jeg også styr på!
Det som jeg ikke kender noget til; det er MySQL :(

Hvordan trækker jeg nu data ud af den & hvordan indsætter jeg data i databasen!

Jeg har oprettet en tabel som hedder ”log”
Tabellen har 3 felter :
date dato
int id
long data

Jeg ved MEGET lidt om MySQL derfor dette spørgsmål:)
Avatar billede arne_v Ekspert
05. december 2004 - 18:12 #1
Du henter f.eks. ud med:

ResultSet rs = stmt.executeQuery("SELECT f1,f2,f3 FROM tabel");
while(rs.next()) {
    int f1 = rs.getInt(1);
    int f2 = rs.getInt(2);
    String f3 = rs.getString(3);
    // brug dem
}
Avatar billede arne_v Ekspert
05. december 2004 - 18:13 #2
Du kan ligge data ind med:

stmt.executeUpdate("INSERT INTO tabel (f1,f2,f3) VALUES(1,2,'ABC')");
Avatar billede meho_tarevci Nybegynder
05. december 2004 - 18:35 #3
hej arne_v
tak for hurtigt svar

jeg har lagt data ind i databasen.
den første felt "f1" er dato;
men hvordan kan jeg indsætte den aktuelle dato, nu viser den 2000-00-01.

og den anden spørgsmål :
Nå jeg prøver at læse fra databasen får jeg følgende fej meddelelse
Avatar billede meho_tarevci Nybegynder
05. december 2004 - 18:35 #4
MySQL Driver Found

Successfully connected to MySQL server...


  ......  SQLException:  ......

Message:  Invalid value for getInt() - '2000-00-01'

Press any key to continue...
Avatar billede arne_v Ekspert
05. december 2004 - 18:37 #5
Åh. Når det er en Date skal du bruge:

Date f = rs.getDate(1);
Avatar billede meho_tarevci Nybegynder
05. december 2004 - 18:50 #6
ja, nu får jeg følgende output:

1999-12-01
2
ABC


Det er lige det med datoen
hvordan kan jeg indsætte den aktuelle dato (dagens dato)
Avatar billede arne_v Ekspert
05. december 2004 - 19:02 #7
Date now = new Date();

vil finde tiden.

To måder at få den indsat på:

1)  brug SimpleDateFormat til at formatere den til en String og
    sæt den ind med Statemenet executeUpdate

2)  skift til PreparedStatement og brug setDate og executeUpdate


1)  Du bruger SimpleDateFormat til at for
Avatar billede meho_tarevci Nybegynder
05. december 2004 - 19:37 #8
hej arne
jeg har løst problemet

stmt.executeUpdate("INSERT INTO tabel (f1,f2,f3) VALUES({fn curdate() },2,'ABC')");

når jeg bruger : {fn curdate() }
få jeg den aktuelle dato (dagens dato)

jeg ved ikke om det er den rigtige måde at gøre det på,
men det virker :)
Avatar billede arne_v Ekspert
05. december 2004 - 19:45 #9
Det hedder en JDBC escape function.

Meget lidt brugt.

Men det er en del af JDBC.
Avatar billede meho_tarevci Nybegynder
05. december 2004 - 19:50 #10
ok.
tak for din hjælp
Avatar billede arne_v Ekspert
05. december 2004 - 19:53 #11
Øh - du synes ikke at du skulle have uddelt nogen point ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester