Avatar billede gruppe_trio Nybegynder
18. februar 2003 - 12:01 Der er 10 kommentarer og
1 løsning

SQL UPDATE i Java

Hejsa.

Hvordan ser en UPDATE statement ud i Java?
Avatar billede arne_v Ekspert
18. februar 2003 - 12:02 #1
F.eks.:

stmt.executeUpdate("UPDATE mintabel SET mitfelt1=1 WHERE mitfelt2='A'");
Avatar billede gruppe_trio Nybegynder
18. februar 2003 - 12:08 #2
Hvad hvis mitfelt1 og mitfelt2 skal være en attribut?
Avatar billede gruppe_trio Nybegynder
18. februar 2003 - 12:10 #3
...altså:

String s1 = "...";
String s2 = "...";
stmt.executeUpdate("UPDATE mintabel SET mitfelt1= ? WHERE mitfelt2= ? ");
Avatar billede arne_v Ekspert
18. februar 2003 - 12:13 #4
Enten:

Statement stmt = con.createStatement();
stmt.executeUpdate(""UPDATE mintabel SET mitfelt1=" + var1 + " WHERE mitfelt2=" + var2);

eller:

PreparedStatement pstmt = con.prepareStatement("UPDATE mintabel SET mitfelt1= ? WHERE mitfelt2= ?");
pstmt.setInt(1,var1);
pstmt.setInt(2,var2);
pstmt.executeUpdate();
Avatar billede arne_v Ekspert
18. februar 2003 - 12:14 #5
Fordelen ved prepared statement er:
  1)  hurtigere hvis man skal udføre den mange gange
  2)  færre problemer hvis man skal have en streng ind som indeholder
      quotes
Avatar billede arne_v Ekspert
18. februar 2003 - 12:14 #6
Ja - hov jeg så lige at I have String og ikke int, så skal der
narturligvis:
  - sættes '' ind i statement
  - bruges setString i prepared statement
Avatar billede arne_v Ekspert
18. februar 2003 - 12:15 #7
Altså:

Statement stmt = con.createStatement();
stmt.executeUpdate(""UPDATE mintabel SET mitfelt1='" + var1 + "' WHERE mitfelt2='" + var2 + "'");

eller:

PreparedStatement pstmt = con.prepareStatement("UPDATE mintabel SET mitfelt1= ? WHERE mitfelt2= ?");
pstmt.setString(1,var1);
pstmt.setString(2,var2);
pstmt.executeUpdate();
Avatar billede gruppe_trio Nybegynder
18. februar 2003 - 12:34 #8
PreparedStatement pstmt = con.prepareStatement("UPDATE Afdeling SET navn = ? WHERE bemaerkning = ?");

pstmt.setString(1, nytNavn);
pstmt.setString(2, s2);
pstmt.executeUpdate();

Er dette rigtig så? Jeg kan ikke se at den opdaterer...  :-(
Avatar billede arne_v Ekspert
18. februar 2003 - 12:46 #9
Umiddelbart ser det rigtigt ud.
Avatar billede arne_v Ekspert
18. februar 2003 - 12:47 #10
Hvad returnerer pstmt.executeUpdate ?

Den returnerer antal rækker den har opdateret !
Avatar billede gruppe_trio Nybegynder
18. februar 2003 - 12:53 #11
Sorry...  Fejl 40...  :-(

Nu fungerer det.  Tak skal du have!
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