1 Java Database Connectivity (JDBC) Norvald H. Ryeng

Slides:



Advertisements
Liknende presentasjoner
Hans Olav Norheim
Advertisements

Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Avhengigheter og installering
C++ for Java-programmerere
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Avansert SQL og problemløsning
Tips og triks MSP og Projectserver 1) Vise prosjektsammendrag
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
LC238D Datamodellering og databaser Else Lervik, november 2012 Forelesning 12, uke 45 Transaksjoner og flerbrukerproblematikk.
IS-102 Klassedefinisjoner
#include Ligner litt på import i java. Setter inn hele fila stdio.h i programteksten. Definerer en del io funksjoner slik at signaturen er kjent. I dette.
Databasehåndtering med MySQL
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
Bakgrunn. Funksjoner. Nøkkelfunksjoner. Application Manager. View Controller. Validation. Dialog Manager. Clay. Tiger extensions.
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
SQL The questing beast Sir Thomas Mallory. Codds krav 5.Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon,
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
INF150 Programmering mandag 11.9
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Mohammad Ali Koteich Danial Siddiq Sheikh. Hva skal vi snakke om? Directory LDAP The Apache Directory Project.
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Structured Query Language Kræsj-kurs
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Skjema/Forms HTML II IT og læring 2/20 november 2001.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Dynamiske nettsider PHP Del 4 – Eksterne datakilder.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Databasen II Sesjoner, stored procedures, error handling.
Med hånda i kakeboksen. Oblig 4, cookies, sesjoner, stored procedures, error handling.
KAP. 12 Hypertext Implementasjon Roy Kjellid & Tor Andre Kvinge Inf 329.
Vi viser litt fra CD’en Norges Eiendommer. Hvordan en rapport defineres og skrives ut.
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Redusere kompleksitet i Entity Framework spørringer Skrevet av Tore Aurstad,
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
Inf1000 (Uke 5) Arrayer, filer og tekst
Kapittel 10 Exceptions Handtering av exceptions Ein exception er eit objekt som representerer ein feil eller eit unntak Exceptions blir kasta av.
Expression web. Front Page vs Expression web ● Front Page er ute ● Undervisning i Front Page er undervisning i gammeldags teknologi i forhold til standarder.
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
TDT4105 Informasjonsteknologi, grunnkurs
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

1 Java Database Connectivity (JDBC) Norvald H. Ryeng

2

3 Denne forelesningen – Hva er Derby og Java DB? – Hva er JDBC? – Slik fungerer det – Slik gjør dere det (kokebok)

4 – Apache Derby er et DBMS skrevet i og for Java – Java DB er Suns distribusjon av Apache Derby – Kan kjøre som egen prosess (network server) – Kan integreres og kjøres i samme JVM som applikasjonen (embedded) – Krever at man gjør litt ekstra magi Hva er Derby og Java DB?

5 Derby som selvstendig tjener

6 Derby integrert i applikasjonen

7 Hva er JDBC? – Vanligste måte å bruke databaser i Java – Følger med JRE og JDK (java.sql.*) – Uavhengig av DBMS (krever driver) – Spørringer skrives i SQL

8 De viktigste grensesnittene – java.sql.Connection Tilkobling til en databasetjener – java.sql.Statement Brukes for å utføre spørringer mot databasen – java.sql.ResultSet Resultatet av en spørring

9 Koble til databasetjeneren – Laste driver vha. Class.forName() Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); – Koble til med DriverManager: – Holder styr på drivere – Lager tilkoblinger (Connection-objekter) Connection conn = DriverManager.getConnection( "jdbc:derby:mindb" );

10 java.sql.Connection.createStatement() Lag et Statement-objekt.prepareStatement(…) Lag en halvferdig spørring.setAutoCommit(…) Commit etter hver executeQuery/executeUpdate? (Standard: ja).commit().rollback().close()

11 java.sql.Statement.executeUpdate("INSERT INTO tabell VALUES (…)") Utfører en operasjon som ikke returnerer noe resultat (f.eks. INSERT og UPDATE). Returnerer antall rader som påvirkes..executeQuery("SELECT * FROM tabell") Utfører en spørring og returnerer et ResultSet med svar på spørringen..close()

12 java.sql.PreparedStatement – Halvferdig spørring hvor man bare fyller ut verdier – Effektivt ved gjentatte spørringer – Sikrere – Penere kode? – Ryddigere å definere spørringen bare ett sted – Mange linjer for lite arbeid

13 Her daughter is named Help I'm trapped in a driver's license factory. java.sql.PreparedStatement xkcd by Randall Munroe,

14 java.sql.PreparedStatement PreparedStatement ps = conn.prepareStatement("INSERT INTO Poststed " + "VALUES (?,?)"); ps.setInt(1, 9040); ps.setString(2, "NORDKJOSBOTN"); ps.executeUpdate(); ps.close();

15 java.sql.ResultSet.next() Går til neste rad. Starter før første rad, så man må kalle next() før man gjør noe annet. Returnerer true hvis det er en neste rad og false hvis det ikke er flere rader igjen..getInt(k) Leser en int fra kolonne k. k kan enten være kolonnenummeret (starter på 1) eller kolonnenavnet..getString(k) Leser en String fra kolonne k..close()

16 java.sql.SQLException – Unntak som kastes dersom noe går galt – Må fanges og håndteres – Løsning: sett alle JDBC-operasjoner innenfor try{…}: try { // JDBC-kode } catch (SQLException e) { // Ev. catch (Exception e) e.printStackTrace(); }

17 Spørsmål?

18 Kokebok

19 0. Importer java.sql.* import java.sql.*; Importerer JDBC-pakken inn i navnerommet, slik at man slipper å skrive java.sql. foran alle klasse- og grensesnittnavn.

20 1. Last inn Derby-driveren Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); – Sørger for at vi kan snakke med databasetjeneren – Følger med nyere Java

21 2. Koble til databasen Connection conn = DriverManager.getConnection("jdbc:derby:mindb " );

22 3. Lag et Statement-objekt Statement stmt = conn.createStatement(); – Sørger for å sende SQL-setninger til databasetjeneren. – Kan sende spørringer som returnerer resultat (SELECT) – Kan sende spørringer som ikke returnerer resultat (INSERT, DELETE)

23 4. Utfør spørringen ResultSet rs = stmt.executeQuery("SELECT * " + "FROM poststed WHERE sted='TRONDHEIM' "); Merk: – Ikke semikolon på slutten av spørringen – Apostrof rundt tekststrenger

24 5. Les resultatet while (rs.next()) { System.out.print(rs.getInt(1)); System.out.print( " " ); System.out.println(rs.getString(2)); } – getXxx() finnes for de viktigste datatypene – Tar kolonnenummer eller –navn som parameter

25 6. Lukk ResultSet-objektet rs.close(); – Frigjør ressurser – Veldig viktig! – Hvis man har for mange ResultSet-objekter oppe, vil man få en feil når man utfører neste spørring.

26 7. Lukk Statement-objektet stmt.close(); – Frigjør ressurser – Et Statement-objekt kan brukes flere ganger Dvs. at man kan kjøre.executeQuery() og.executeUpdate() flere ganger med samme Statement-objekt. – Hvorfor ha flere Statement-objekter? Man kan kun ha ett ResultSet-objekt åpent for hvert Statement-objekt.

27 8. Lukk Connection-objektet conn.close(); – Frigjør ressurser – Kobler fra databasetjeneren

28 9. Avslutt integrert Derby try { DriverManager.getConnection( " jdbc:derby:;shutdown=true " ); } catch (SQLException e) { /* alltid */ } – Skriver sjekkpunkt – Ikke nødvendig for andre DBMS N.B. Kaster alltid unntak!

29 Mer informasjon Java API-dokumentasjon Notater og veiledninger fra TDT The Java Tutorial—JDBC Database Access Apache Derby Tutorial

30 Spørsmål?