| Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
|---|---|---|
| forrige | Kapitel 20. JDBC - databaseadgang | næste |
Når vi har en forbindelse, kan vi oprette et “statement”-objekt, som vi kan sende kommandoer og forespørgsler til databasen med
Statement stmt = forb.createStatement();
Der kan opstå forskellige undtagelser af typen SQLException, der skal fanges.
SQL-kommandoer som INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE og ALTER TABLE, der ikke giver et svar tilbage i form af data, sendes med executeUpdate()-metoden[1].
Her opretter vi f.eks. tabellen “kunder”:
stmt.executeUpdate("create table KUNDER (NAVN varchar(32), KREDIT float)" );
… og indsætter et par rækker
stmt.executeUpdate("insert into KUNDER values('Jacob', -1799)");
stmt.executeUpdate("insert into KUNDER values('Brian', 0)");
Oftest har vi data i variabler, så vi skal sætte en streng sammen, der giver den rigtige SQL-kommando:
String navn = "Hans";
int kredit = 500; //// indsæt data fra variabler// stmt.executeUpdate("insert into KUNDER values('" //+navn+// "', " //+kredit+// ")");
SQL-forespørgslen SELECT udføres med metoden executeQuery().
ResultSet rs = stmt.executeQuery("select NAVN, KREDIT from KUNDER");
Den returnerer et ResultSet-objekt, der repræsenterer svaret på forespørgslen. Data hentes som vist herunder
while ( //rs.next()// )
{
String navn = //rs.getString("NAVN")// ;
double kredit = //rs.getDouble("KREDIT")// ;
System.out.println(navn+" "+kredit);
}
Man kalder altså next() for at få næste række i svaret, læser de enkelte celler ud fra kolonnenavnene, hvorefter man går videre til næste række med next() osv. Når next() returnerer false, er der ikke flere rækker at læse.