47
JDBC Java Data Base Connec.vity

JDBC - uio.no · Package java.sql DriverManager The basic service for managing a set of JDBC drivers 7 klasser i java.sql. Vi trenger én av dem: Her finner vi metoder som gir oss

  • Upload
    others

  • View
    44

  • Download
    0

Embed Size (px)

Citation preview

JDBC

JavaDataBaseConnec.vity

Packagejava.sql

Packagejava.sql

ArrayBlobCallableStatementClobConnec.onDatabaseMetaDataDriverNClobParameterMetaDataPreparedStatementRef

ResultSetResultSetMetaDataRowIdSavepointSQLDataSQLInputSQLOutputSQLXMLStatementStructWrapper

Packagejava.sql

ArrayBlobCallableStatementClobConnec.onDatabaseMetaDataDriverNClobParameterMetaDataPreparedStatementRef

ResultSetResultSetMetaDataRowIdSavepointSQLDataSQLInputSQLOutputSQLXMLStatementStructWrapper

Packagejava.sql

DriverManager

ThebasicserviceformanagingasetofJDBCdrivers

7klasserijava.sql.Vitrengerénavdem:

Herfinnervimetodersomgirossenforbindelse.DeSeskjermedmetodersomreturnerer(enpeker.l)etobjektavtypenConnec.on.

DriverManager

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

Herfinnervimetodersomgirossenforbindelse.DeSeskjermedmetodersomreturnerer(enpeker.l)etobjektavtypenConnec.on.

DriverManager

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

Herfinnervimetodersomgirossenforbindelse.DeSeskjermedmetodersomreturnerer(enpeker.l)etobjektavtypenConnec.on.

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 String

p url"jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

DriverManager.getConnec.on(url,p);

Proper.es String

p url"jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

KlassedatastrukturforklassenDriverManager

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

Proper.es String

p url"jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

KlassedatastrukturforklassenDriverManager

Connec.on

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

Connec.on

con

DriverManager

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

Herfinnervimetodersomgirossenforbindelse.DeSeskjermedmetodersomreturnerer(enpeker.l)etobjektavtypenConnec.on.

Connec.on

publicinterfaceConnec.onextendsWrapper,AutoCloseable

Connec.on

con

DriverManager

sta.cConnec.ongetConnec.on(Stringurl,Proper.esinfo)

Herfinnervimetodersomgirossenforbindelse.DeSeskjermedmetodersomreturnerer(enpeker.l)etobjektavtypenConnec.on.

EtConnec.on-objekt

Connec.on

conStatementcreateStatement()

EtConnec.on-objekt

Connec.on

conStatementcreateStatement()

/*CreatesaStatementobjectforsendingSQLstatementstothedatabase.*/

EtConnec.on-objekt

Connec.on

conStatementcreateStatement()

Statement stm = con.createStatement();

/*CreatesaStatementobjectforsendingSQLstatementstothedatabase.*/

EtConnec.on-objekt

Connec.on

conStatementcreateStatement()

Statement stm = con.createStatement();

Statement

stm

/*CreatesaStatementobjectforsendingSQLstatementstothedatabase.*/

EtStatement-objekt

Statement

stm

EtStatement-objekt

Statement

stm

EtStatement-objekt

Statement

stm

ResultSetexecuteQuery(Stringsql)

ExecutesthegivenSQLstatement,whichreturnsasingleResultSetobject.

EtStatement-objekt

Statement

stm

ResultSetexecuteQuery(Stringsql)

Stringspørring="selectF.filmidasfid,F..tleas.Sel,F.prodyearaspaarfromfilmFnaturaljoinFilmcountryCwhereC.country='Norway’";

EtStatement-objekt

Statement

stm

ResultSetexecuteQuery(Stringsql)

Stringspørring="selectF.filmidasfid,F..tleas.Sel,F.prodyearaspaarfromfilmFnaturaljoinFilmcountryCwhereC.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' " ;

EtStatement-objekt

Statement

stm

ResultSetexecuteQuery(Stringsql)

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' " ;

EtStatement-objekt

Statement

stm

ResultSetexecuteQuery(Stringsql)

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

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Atableofdatarepresen7ngadatabaseresultset,whichisusuallygeneratedbyexecu7ngastatementthatqueriesthedatabase.

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

AResultSetobjectmaintainsacursorpoin7ngtoitscurrentrowofdata.Ini7allythecursorisposi7onedbeforethefirstrow.Thenextmethodmovesthecursortothenextrow,andbecauseitreturnsfalsewhentherearenomorerowsintheResultSetobject,itcanbeusedinawhilelooptoiteratethroughtheresultset..

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

AResultSetobjectmaintainsacursorpoin7ngtoitscurrentrowofdata.Ini7allythecursorisposi7onedbeforethefirstrow.Thenextmethodmovesthecursortothenextrow,andbecauseitreturnsfalsewhentherearenomorerowsintheResultSetobject,itcanbeusedinawhilelooptoiteratethroughtheresultset..

cursor

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

AdefaultResultSetobjectisnotupdatableandhasacursorthatmovesforwardonly.Thus,youcaniteratethroughitonlyonceandonlyfromthefirstrowtothelastrow.ItispossibletoproduceResultSetobjectsthatarescrollableand/orupdatable.

cursor

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Movesthecursorfrowardonerowfromitscurrentposi7on.

cursor

booleannext()

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Movesthecursorfrowardonerowfromitscurrentposi7on.

cursor

booleannext()

thecurrentrow

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Movesthecursorfrowardonerowfromitscurrentposi7on.

cursor

booleannext()

thecurrentrow

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Movesthecursorfrowardonerowfromitscurrentposi7on.

cursor

booleannext()

thecurrentrow

EtResultSet-objekt

ResultSet

norskeFilmer

ResultSet norskeFilmer = stm.executeQuery (spørring);

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

Movesthecursorforwardonerowfromitscurrentposi7on.

cursor

booleannext()

EtResultSet-objekt

ResultSet

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

Movesthecursorforwardonerowfromitscurrentposi7on.RetrievesthevalueofthedesignatedcolumninthecurrentrowofthisResultSetobjectasaString.RetrievesthevalueofthedesignatedcolumninthecurrentrowofthisResultSetobjectasanint.

cursor

booleannext()

StringgetString(StringcolumnLabel)

intgetInt(intcolumnIndex)

thecurrentrow

ResultSet

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

cursor

booleannext()

StringgetString(StringcolumnLabel)

intgetInt(intcolumnIndex)

thecurrentrow

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