You are on page 1of 17

JDBC API

4.0

JDBC 4.0
Automatsko uivatanje java.sql.Driver
(DriverManager.getConnection je modifikovan za koritenje
Java SE Service Provider mehanizama za automatsko
uivanje JDBC Drivers.)
ROWID tip podataka (Dodat je tip podatka java.sql.RowId.
Ovim je omoguen pristup SQL ROWID)
Podrka za National Character Set (dodati tipovi podatka
NCHAR, NVARCHAR, LONGNVARCHAR, and NCLOB)
Poboljana podrka za BLOB i CLOB
Podrka za SQL/XML i XML (SQL:2003 dodatni API za pristup
ovim tipovima podataka)
Wrapper Pattern (Podrana mogunost odmotavanja java
klasa u svrhu kreiranja novih nestandardnih JDBC metoda.)

JDBC 4.0
SQLException pobljanja (SQLTransientException,
SQLNonTransientExeption i SQLRecoverableExeption)
Connection Management
Nove skalarne funkcije (CHAR_LENGTH, CHARACTER_LENGTH,
CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT,
OCTET_LENGTH, POSITION)
JDBC API promjene:

Array
Connection (createArrayOf,createBlob, createClob, createNClob,
createSQLXML,createStruct, isValid, getClientInfo, setClientInfo)
CallableStatement (getRowId, setRowId, getNClob, getNString,
getCharacterStream, getNCharacterStream ...)
DatabaseMetaData (getSchemas, getFunctions, getFunctionParameters ...)
PreparedStatement (setRowId, setNString, setNCharacterStream, setSQLXML,
setNClob ...)
ResultSet (getRowId, updateRowId, getNCharacterStream,
updateNCharacterStream, updateNString, getSQLXML)
...

Uspostavljanje konekcije
DriverManager - JDBC 1.0
DataSource JDBC 2.0

ConnectionPoolDataSource (uspostavljanje i
ponovno koritenje fizikih konekcija)
XADataSource (predvia konekcije koje mogu
participirati u distribuiranim transakcijama)

Izvravanje SQL iskaza


JDBC omoguava prististup velikom broju SQL komandi
implementiranih od strane SQL:2003 standarda.
JDBC API omoguava izvravanje i nestadardnih SQL iskaza
Connection interface uspostavljenje konekcije izmeu
aplikacije i baze podataka putem:
Statement
PreparedStatement
CallableStatement

ResultSet interface enkapsulira rezultate SQL upita


(viestruka azuriranja db putem samo 1 izvrenja)
Automatska konverzija JDBC <-> DB (ukljueni su i tipovi
podataka BLOB, CLOB, ARRAY, REF, STRUCT, XML i DISTINCT)
Po potrebi mogu se kastimizirati i korisniki definisati tipovi
od/ka bazi podataka

Two-tier Model
Klijentska strana

Klijentska strana podrazumijeva


jednu ili vie JDBC konekcija koje
sadre:
Prezentacijsku logiku
Biznis logiku
Transakcijski menadment i/ili
distributribuirane transakcije
Menadment resursa

Loa strana ovog pristupa:

Serverska strana

Mijeanje prezentacijske i biznis logike


sa infrastrukturom i sistemskog nivoa
funkcija
Ovako izraene aplikacije su manje
prenovise
Ograniena skalabilnost - 1 ili vie
fizikih konekcija prema bazi podataka
Oteano odravanja i sl.

Three-tier Model

Middle-tier Server:
Biznis logika i
Insfrastrukura

Klijentska
strana

Tanki klijentski sloj:


implemenirana nuna
prezentaciona logika
nepohodna za
komunikaciju sa
okolinom (ovjekom)

Serverska
strana

Aplikacije interakcija sa
klijentom i biznis logikom
Aplikativni server
insfastrukura za podrku
aplikacija
JDBC aplikacije  DB

java.sql package

java.sql.Array
java.sql.BatchUpdateException
java.sql.Blob
java.sql.CallableStatement
java.sql.Clob
java.sql.ClientinfoStatus
java.sql.Connection
java.sql.DataTruncation
java.sql.DatabaseMetaData
java.sql.Date
java.sql.Driver
java.sql.DriverManager
java.sql.DriverPropertyInfo
java.sql.NClob

java.sql.ResultSet
java.sql.ResultSetMetaData
java.sql.RowId
java.sql.SQLData
java.sql.SQLDataException
java.sql.SQLException
java.sql.SQLOutput
java.sql.SQLPermission
java.sql.SQLXML
java.sql.Time
java.sql.Timestamp
java.sql.Types
java.sql.Wrapper
...

Interakcije i veze izmeu kljunih klasa i interfejsa u java.sql package

javax.sql package
javax.sql.CommonDataSour
ce

javax.sql.ConnectionEvent
javax.sql.ConnectionEventLi
stener

javax.sql.ConnectionPoolDa
taSource

javax.sql.DataSource
javax.sql.PooledConnection

javax.sql.RowSet
javax.sql.RowSetEvent

javax.sql.RowSetInternal

javax.sql.RowSetListener
javax.sql.RowSetMetaData
javax.sql.RowSetReader
javax.sql.RowSetWriter
javax.sql.StatementEvent
javax.sql.StatementEventList
ener
javax.sql.XAConnection
javax.sql.XADataSource

Veze izmeu javax.sql.DataSource i


java.sql.Connection

Distribuirana transakcija

RowSet

Connections
Objekat koji predstavlja konekciju na DB putem jdbc drivera.
Izvor podataka moe biti:
DBMS
File sistem
ili neki drugi izvor podataka (podran od strane jdbc)

Implementacije jdbc drivera za uspostavljanje konekcije:

Tip 1 jdbc driver koji koristi usluge drugog driver-a npr. ODBC
Tip 2 driveri koji su djelimino napisani u java programskom jeziku, a
djelimino u nativ kodu.
Tip3 driveri koji koriste istog java klijenta i komuniciraju sa
middleware severom preko db-nezavisnog protokola
Tip 4 isti java driver koji se koriste za komunikaciju sa mrenim
protokolom i/ili File IO sa specifinim izvorom podataka

JDBC driver-i

IBM DB2
jdbc:db2://<HOST>:<PORT>/<DB>
COM.ibm.db2.jdbc.app.DB2Driver
Microsoft SQL Server

jdbc:weblogic:mssqlserver4:<DB>@<HOST>:
<PORT>
weblogic.jdbc.mssqlserver4.Driver
Oracle Thin
jdbc:oracle:thin:@<HOST>:<PORT>:<SID>
oracle.jdbc.driver.OracleDriver
Firebird (JCA/JDBC Driver)
jdbc:firebirdsql:[//<HOST>[:<PORT>]/]<DB>
org.firebirdsql.jdbc.FBDriver

Interbase (InterClient Driver)


jdbc:interbase://<HOST>/<DB>
interbase.interclient.Driver

Microsoft SQL Server (Microsoft Driver)


jdbc:microsoft:sqlserver://<HOST>:<PORT>[;
DatabaseName=<DB>]
com.microsoft.sqlserver.jdbc.SQLServerDrive
r

MySQL (MM.MySQL Driver)


jdbc:mysql://<HOST>:<PORT>/<DB>
org.gjt.mm.mysql.Driver
PostgreSQL (v6.5 and earlier)
jdbc:postgresql://<HOST>:<PORT>/<
DB>
postgresql.Driver
PostgreSQL (v7.0 and later)
jdbc:postgresql://<HOST>:<PORT>/<
DB>
org.postgresql.Driver
Sybase (jConnect 4.2 and earlier)
jdbc:sybase:Tds:<HOST>:<PORT>
com.sybase.jdbc.SybDriver
Sybase (jConnect 5.2)
jdbc:sybase:Tds:<HOST>:<PORT>
com.sybase.jdbc2.jdbc.SybDriver

Exceptions
Klasa SQLException greka i upozorenja
tokom izvravanja izvornog koda
SQLException sadri sljedee informacije:

SQLException.getMessage tekstualni opis greke


SQLState status vracenog SQL upita
SQLException.getErrorCode error code nastale
greke pri izvrenju
SQLException.getNextException usluaju da
nema vie greaka ova metoda vratit e null

Primjeri

You might also like