1 Java Database Connectivity (JDBC) Norvald H. Ryeng

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Hans Olav Norheim
Tabeller av objekter Klassen ArrayList
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Avhengigheter og installering
C++ for Java-programmerere
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
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.
Kontrollstrukturer (Kapittel 3)
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
Høgskolen i Oslo Webprogrammering Introduksjon til Java-scripting.
Java 12 Mer filbehandling - skrive til fil HashMap Et større eksempel Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
LC238D Datamodellering og databaser Else Lervik, november 2012 Forelesning 12, uke 45 Transaksjoner og flerbrukerproblematikk.
Java 14 Et eksempel fra bioinformatikk: analyse av biologiske sekvenser Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
EcmaScript 5 Arrays Demonstrasjon av ny funksjonalitet støttet i IE 9.
IS-102 Klassedefinisjoner
Gjenfinningssystemer og verktøy II
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Databasehåndtering med MySQL
C# for javaprogrammerere
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.
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.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Byggesak Trinn for trinn.
Entity Framework Andreas Knudsen, Bekk Consulting AS 31/
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ø)
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
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å.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Databasen II Sesjoner, stored procedures, error handling.
Figur 1 Behov. Figur 2 Behov Figur 3 Prioritering/ressursinnsats.
KAP. 12 Hypertext Implementasjon Roy Kjellid & Tor Andre Kvinge Inf 329.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
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.
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.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
Telenors satsing på fri programvare Paul Skrede - GoOpen 2009.
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.
Inf1000 (Uke 10) HashMap og ArrayList
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
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

1 Java Database Connectivity (JDBC) Norvald H. Ryeng

2 Avlyst forelesning Forelesningen torsdag 1. februar er avlyst

3 Denne forelesningen –Hva er JDBC? –Slik fungerer det –Slik gjør dere det (kokebok) :-)

4 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

5 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

6 Koble til databasetjeneren –Laste driver vha. Class.forName() Class.forName("oracle.jdbc.driver.OracleDriver"); –Koble til med DriverManager: –Holder styr på drivere –Lager tilkoblinger (Connection-objekter) Connection conn = DriverManager.getConnection(url, brukernavn, passord); URL til databasen ELEFANT på IDIs Oracle-tjener:

7 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()

8 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()

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

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

11 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()

12 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(); }

13 Kokebok

14 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.

15 1. Last inn Oracle-driveren Class.forName("oracle.jdbc.driver.OracleDriver"); –Sørger for at vi kan snakke med databasetjeneren –Installert på IDIs datamaskiner –Tilgjengelig fra IDIs Oracle-tjener:

16 2. Koble til databasen Connection conn = DriverManager.getConnection("jdbc:oracle:thin:" + "brukernavn", "passord");

17 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)

18 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

19 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

20 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.

21 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.

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

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

24 Spørsmål?