^ Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 ^| | [[java:java-jdbc|forrige]] | Kapitel 20. JDBC - databaseadgang | [[java:java-jdbc-eksempel|næste]] | ---- ==== 20.2. Kommunikere med databasen ==== 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. === 20.2.1. Kommandoer === 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[[java:java-jdbc-kom-med-db#FTN.AEN5495|[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+// ")"); === 20.2.2. Forespørgsler === 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. == Slutbemærkning: == | [[java:java-jdbc-kom-med-db#AEN5495|[1]]] | SQL fra JDBC er normalt forpligtigende, d.v.s. en kommando kan ikke fortrydes når den først er givet. I Avancered-afsnittet i slutningen af kapitlet vises hvordan automatisk forpligtigelse (eng.: auto-commit) kan slås fra. | ---- | [[java:java-jdbc|forrige]] | [[java:index|hjem]] | [[java:java-jdbc-eksempel|næste]] | | JDBC - databaseadgang | [[java:java-jdbc|op]] | Samlet eksempel |