Java Database Connectivity
A Java Database Connectivity, röviden JDBC egy API a Java programozási nyelvhez, amely az adatbázishozzáférést támogatja. A JDBC definiálja az adatbázisok lekérdezéséhez és módosításához szükséges osztályokat és metódusokat. A relációs adatmodellhez igazodik. A Standard Edition és az Enterprise Edition egyaránt tartalmazza a JDBC-t a specifikáció részeként. A Sun terjeszt egy zárt forráskódú ODBC implementációt is a Standard Edition részeként, amellyel minden ODBC-kompatibilis adatbázishoz lehet kapcsolódni. ÁttekintésA JDBC már az 1.1 verziótól kezdve a Standard Edition része. A vonatkozó osztályokat a
A JDBC lehetővé teszi több implementáció létezését és használatát egy alkalmazáson belül. Az API biztosít egy mechanizmust a megfelelő java csomagok betöltésére és regisztrálására az úgynevezett Driver Manager-en keresztül. A Driver Manager az objektumorientált programozás tervezési mintái szerint egy factory amely adatbáziskapcsolatokat gyárt. Az adatbáziskapcsolatot a
A módosító kifejezések, tehát az INSERT, az UPDATE és a DELETE futtatása csak egy Az alap API-hoz létezik egy kiegészítés is a PéldaA használt adatbázisszerver JDBC driver-ét a Class.forName( "com.valamijdbcforgalmazo.ValamiJdbcDriver" );
A JDBC 4.0 verziótól már nem kell explicit betölteni a JDBC drivert a Miután a virtuális gép betöltötte a A következő lépés az adatbáziskapcsolat létrehozása egy Connection conn = DriverManager.getConnection(
"jdbc:valamijdbcforgalmazo:további adatok a jdbc forgalmazótól függően",
"felhasznalonev",
"jelszo" );
Az URL mindig a „jdbc:” karaktersorozattal kezdődik, a többi része a forgalmazótól függ. Ha megvan az adatbáziskapcsolat, akkor létre lehet hozni az SQL kifejezést: Statement stmt = conn.createStatement();
try {
stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'Rob' ) " );
} finally {
// Fontos lezárni a kifejezést!
stmt.close();
}
A JDBC objektumok lezárása nagyon fontos, mert az adatbáziskapcsolatok, kifejezések és eredményhalmazok erőforrásokat, például socket-eket és file descriptorokat, foglalnak le az operációs rendszerben. Távoli szerver esetében a szerveren kurzorokat is lefoglalhatnak. A nyitva felejtett objektumok váratlan és zavarbaejtő hibákhoz vezethetnek. A JDBC objektumok használatakor ajánlatos követni az alábbi Statement stmt = conn.createStatement();
try {
ResultSet rs = stmt.executeQuery( "SELECT * FROM MyTable" );
try {
while ( rs.next() ) {
// Sorfeldolgozás.
}
} finally {
rs.close();
}
} finally {
stmt.close();
}
A PreparedStatement ps = conn.prepareStatement( "SELECT i.*, j.* FROM Omega i, Zappa j WHERE i = ? AND j = ?" );
try {
ps.setString(1, "Poor Yorick");
ps.setInt(2, 8008);
ResultSet rs = ps.executeQuery();
try {
while ( rs.next() ) {
// Sorfeldolgozás.
}
} finally {
rs.close();
}
} finally {
ps.close();
}
Az alábbi SQL típusokra lehet konvertálni változókat a Java nyelvből:
Tárolt eljárásos példa a KivételekHa valamilyen adatbázis művelet sikertelen, az JDBC driverekA driver nem más, mint egy kliensoldali adapter, amely a java program kéréseit átalakítja az adatbázisszerver által értelmezhető formára. TípusokA legtöbb relációs adatbázisszerverhez léteznek driverek. Ezeket a következő módon tipizálják:
Források
|