JDBC. Java Data Base Connec.vity

Like dokumenter
Bruke SQL fra Java. Med JDBC (Java Database Connec/vity)

Bruke SQL fra Python. Med Psycopg2

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Java Database Connectivity (JDBC) Norvald H. Ryeng

INF1300 Det meste av resten av

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Databases 1. Extended Relational Algebra

Videregående programmering 6

Tilkobling og Triggere

INF1300 Det meste av resten av SQL. Utleggsark v. 2.0

Oppgave 1 (Opprett en database og en tabell)

Eksamen i Internetteknologi Fagkode: ITE1526

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Løsningsforslag til eksamen i INF1000 våren 2006

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21

Indre select-setninger Nestede select-setninger

EKSAMEN I FAG TDT MMI Lørdag 11. august 2012 Tid: kl

Slope-Intercept Formula

Exercise 1: Phase Splitter DC Operation

ORDBMS og OODBMS i praksis

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Level Set methods. Sandra Allaart-Bruin. Level Set methods p.1/24

Dynamic Programming Longest Common Subsequence. Class 27

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

TMA4329 Intro til vitensk. beregn. V2017

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

Moving Objects. We need to move our objects in 3D space.

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

2: Hvilke verdier forekommer i attributtet filmtype i relasjonen filmitem? Lag en oversikt over filmtypene og hvor mange filmer innen hver type.

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

XML enabled database. support for XML in Microsoft SQL Server 2000 & Martin Malý

SuperOffice hurtigstart guide

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

INF Notater. Veronika Heimsbakk 10. juni 2012

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

IN2010: Algoritmer og Datastrukturer Series 2

UNIVERSITETET I OSLO

TDT4117 Information Retrieval - Autumn 2014

EKSAMEN I FAG TDT MMI Lørdag 4. juni 2005 Tid: kl

Løsningsforslag Test 2

Appendiks A Kontinuasjoner

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Feilmelding Årsak Løsning

Elektronisk innlevering/electronic solution for submission:

UNIVERSITETET I OSLO

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

UNIVERSITETET I OSLO

Ole Isak Eira Masters student Arctic agriculture and environmental management. University of Tromsø Sami University College

Public roadmap for information management, governance and exchange SINTEF

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

LO191D/LC191D Videregående programmering eksamen des. 2009

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

Information search for the research protocol in IIC/IID

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Graphs similar to strongly regular graphs

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Maple Basics. K. Cooper

Løsningsforslag Eksamen V08. Oppgave 1. Oppgave 1.1. Oppgave 1.2. Oppgave 1.3. Se i boka/forelesningsnotatene:-) Se i boka/forelesningsnotatene:-)

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

Metaspråket for å beskrive grammatikk

Løsningsforslag 2017 eksamen

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

UNIVERSITETET I OSLO

Repetisjon: Normalformer og SQL

EKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

HØGSKOLEN I SØR-TRØNDELAG

Sikkerhet og tilgangskontroll i RDBMS-er

1. Explain the language model, what are the weaknesses and strengths of this model?

SQL-omgivelser. SQL-omgivelse

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

Neural Network. Sensors Sorter

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Del 3: Evaluere uttrykk

HØGSKOLEN I SØR-TRØNDELAG

Norges Informasjonsteknologiske Høgskole

Striped cowl. By Matilde Skår

SQL Structured Query Language. Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Relasjoner terminologi. Kopi av lysark fra forelesningen 13. oktober. Legges ut inntil notatet som samler alt om SQL kommer...

INF Logikk og analysemetoder Forslag til løsning på oppgave fra læreboken

Stationary Phase Monte Carlo Methods

INF1010. Grensesnittet Comparable<T>

Vedlegg 2 Dokumentasjon fra TVM leverandør

HONSEL process monitoring

Transkript:

JDBC Java Data Base Connec.vity

Package java.sql

Package java.sql Array Blob CallableStatement Clob Connec.on DatabaseMetaData Driver NClob ParameterMetaData PreparedStatement Ref ResultSet ResultSetMetaData RowId Savepoint SQLData SQLInput SQLOutput SQLXML Statement Struct Wrapper

Package java.sql Array Blob CallableStatement Clob Connec.on DatabaseMetaData Driver NClob ParameterMetaData PreparedStatement Ref ResultSet ResultSetMetaData RowId Savepoint SQLData SQLInput SQLOutput SQLXML Statement Struct Wrapper

Package java.sql 7 klasser i java.sql. Vi trenger én av dem: DriverManager The basic service for managing a set of JDBC drivers Her finner vi metoder som gir oss en forbindelse. DeSe skjer med metoder som returnerer (en peker.l) et objekt av typen Connec.on.

DriverManager Her finner vi metoder som gir oss en forbindelse. DeSe skjer med metoder som returnerer (en peker.l) et objekt av typen Connec.on. sta.c Connec.on getconnec.on(string url, Proper.es info)

DriverManager Her finner vi metoder som gir oss en forbindelse. DeSe skjer med metoder som returnerer (en peker.l) et objekt av typen Connec.on. sta.c Connec.on getconnec.on(string url, Proper.es info) DriverManager.getConnec.on(url, p);

DriverManager.getConnec.on(url, p);

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb";

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties();

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true");

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory");

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory"); p.put("user", "michael");

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory"); p.put("user", "michael"); p.put("password", passord);

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory"); p.put("user", "michael"); p.put("password", passord);

DriverManager.getConnec.on(url, p); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory"); p.put("user", "michael"); p.put("password", passord); Proper.es p String url "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

DriverManager.getConnec.on(url, p); Klassedatastruktur for klassen DriverManager sta.c Connec.on getconnec.on(string url, Proper.es info) Proper.es p String url "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

Connec.on con = DriverManager.getConnec.on(url, p); Klassedatastruktur for klassen DriverManager sta.c Connec.on getconnec.on(string url, Proper.es info) Proper.es p String url "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

Connec.on Connec.on con = DriverManager.getConnec.on(url, p); Connec.on con

DriverManager Her finner vi metoder som gir oss en forbindelse. DeSe skjer med metoder som returnerer (en peker.l) et objekt av typen Connec.on. sta.c Connec.on getconnec.on(string url, Proper.es info)

Connec.on public interface Connec.on extends Wrapper, AutoCloseable Connec.on con

DriverManager Her finner vi metoder som gir oss en forbindelse. DeSe skjer med metoder som returnerer (en peker.l) et objekt av typen Connec.on. sta.c Connec.on getconnec.on(string url, Proper.es info)

Et Connec.on-objekt Connec.on Statement createstatement() con

Et Connec.on-objekt Connec.on Statement createstatement() con /* Creates a Statement object for sending SQL statements to the database. */

Et Connec.on-objekt Connec.on Statement createstatement() con /* Creates a Statement object for sending SQL statements to the database. */ Statement stm = con.createstatement();

Et Connec.on-objekt Connec.on Statement createstatement() con /* Creates a Statement object for sending SQL statements to the database. */ Statement stm = con.createstatement(); Statement stm

Et Statement-objekt Statement stm

Et Statement-objekt Statement stm

Et Statement-objekt ResultSet executequery(string sql) Statement stm Executes the given SQL statement, which returns a single ResultSet object.

Et Statement-objekt ResultSet executequery(string sql) Statement stm String spørring = " select F.filmid as fid, F..tle as.sel, F.prodyear as paar from film F natural join Filmcountry C where C.country='Norway " ;

Et Statement-objekt ResultSet executequery(string sql) Statement stm String spørring = " select F.filmid as fid, F..tle as.sel, F.prodyear as paar from film F natural join Filmcountry C where C.country='Norway " ; String spørring = "select F.filmid as fid, " +" F.title as tittel, " +" F.prodyear as paar " +"from film F natural join Filmcountry C " +"where C.country='Norway' " ;

Et Statement-objekt ResultSet executequery(string sql) Statement stm String spørring = "select F.filmid as fid, " +" F.title as tittel, " +" F.prodyear as paar " +"from film F natural join Filmcountry C " +"where C.country='Norway' " ;

Et Statement-objekt ResultSet executequery(string sql) Statement stm String spørring = "select F.filmid as fid, " +" F.title as tittel, " +" F.prodyear as paar " +"from film F natural join Filmcountry C " +"where C.country='Norway' " ; ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... ResultSet norskefilmer ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... ResultSet norskefilmer A table of data represen7ng a database result set, which is usually generated by execu7ng a statement that queries the database. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... ResultSet norskefilmer A ResultSet object maintains a cursor poin7ng to its current row of data. Ini7ally the cursor is posi7oned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... ResultSet norskefilmer A ResultSet object maintains a cursor poin7ng to its current row of data. Ini7ally the cursor is posi7oned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... ResultSet norskefilmer A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce ResultSet objects that are scrollable and/or updatable. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() ResultSet norskefilmer Moves the cursor froward one row from its current posi7on. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() the current row ResultSet norskefilmer Moves the cursor froward one row from its current posi7on. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() the current row ResultSet norskefilmer Moves the cursor froward one row from its current posi7on. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() the current row ResultSet norskefilmer Moves the cursor froward one row from its current posi7on. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() ResultSet norskefilmer Moves the cursor forward one row from its current posi7on. ResultSet norskefilmer = stm.executequery (spørring);

Et ResultSet-objekt cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... boolean next() String getstring(string columnlabel) int getint(int columnindex) the current row ResultSet norskefilmer Moves the cursor forward one row from its current posi7on. Retrieves the value of the designated column in the current row of this ResultSet object as a String. Retrieves the value of the designated column in the current row of this ResultSet object as an int.

cursor fid tittel paar ---------+-------------------------------+------ 230 Varis 2004 340 Anolit 2002 356 Kvinnen i mitt liv 2003 632 Syx 1988 664 Portrettet 1954 774 22 2000 792 Andre omgang 2007 998 Digre daier 1997 1014 Stopp 2001 1030 Tid for frokost 2004... the current row ResultSet norskefilmer boolean next() String getstring(string columnlabel) int getint(int columnindex) while ( norskefilmer.next() ) { fm = new Film(norskeFilmer.getInt("fid")); fm.tittel = norskefilmer.getstring("tittel"); fm.produksjonsår = norskefilmer.getint("paar"); filmer.add(fm); }

Properties p = new Properties(); p.setproperty("ssl", "true"); p.setproperty("sslfactory", "org.postgresql.ssl.nonvalidatingfactory"); p.put("user", "michael"); p.put("password", passord); // "ifikurs_ro"); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; Connection con = DriverManager.getConnection(url, p); } Statement stm = con.createstatement(); String spørring = "select F.filmid as fid, " +" F.title as tittel, " +" F.prodyear as paar " +"from film F natural join Filmcountry C " +"where C.country='Norway'" ; ResultSet norskefilmer = stm.executequery (spørring); while (norskefilmer.next() ) { fm = new Film(norskeFilmer.getInt("fid")); fm.tittel = norskefilmer.getstring("tittel"); fm.produksjonsår = norskefilmer.getint("paar"); filmer.add(fm); }