Gyakorlati alapok III.

SQL (adatbázis)

 

A JDBC

 

A JDBC (Java Database Connectivity) a Java-rendszer illesztése egy külső adatbázisra és annak komplex menedzselése szintén nagyobbrészt Java-, kisebbrészt SQL-nyelvi elemeken keresztül. Már a Java 1.1 verziótól kezdve a Standard Edition (JSE) része. A működtető osztályok a java.sql csomagban találhatók, bár kiegészítésként a javax.sql csomag is tartalmaz további, még magasabb szintű működést biztosító osztályokat.


A JDBC voltaképpen egy API (Application Programming Interface), amely interfészek segítségével teremti meg a kapcsolatot relációs adatbázisok platform-, és adatbázisfüggetlen elérésére.


A JDBC API szolgáltatásai 3 kategóriába sorolhatók:

Mivel az adatbázis-kezelés az informatikának egy nagyon jól kifizetődő területe, nem meglepő, hogy igen sok adatbázis-kezelő rendszer létezik. A Java szoftvermérnökei úgy próbálják megoldani ezen sokféle adatbázis-rendszer Java-nyelvre való illesztését, hogy egyfajta kapcsolódási pontokként csak interfészeket deklarálnak, az adatbázisszervert készítő cég pedig kidolgozza azokat meghajtóprogram (driver) formájában. A keletkezett .jar kiterjesztésű kódokat aztán általában szabad felhasználással elérhetővé teszik honlapjaikon. Nekünk is valahonnan éppígy le kell vadásznunk a MySQL driver-ét, hogy alkalmazásunk kommunikálni tudjon a MySQL-kezelővel. A keresett állománynak nagyjából ilyesféle neve lehet (főként a verziószámban lehet különbség):
 

mysql-connector-java-5.1.7-bin.jar
 

www.informatika-programozas.hu - További információk!

2023-as kiegészítés: nekem működött ebben az évben a mysql-connector-commercial-java-5.1.7-bin.jar állomány is, amelyet a www.java2s.com című oldalról töltöttem le.

 

A letöltött állományt először mentsük le valahová, majd az adatbázis-alkalmazásunk projektjének nevére jobb egérgombbal kattintva hozzunk létre benne egy lib nevű könyvtárt (ez kváziszabványos eljárás külső állományok tárolására):

 

File -> New -> Folder

 

Majd a létrehozott lib könyvtárnévre jobb egérgombbal kattintva adjuk ki a következő parancsot...

 

Import -> Archive File -> Browse
 

...amely feldobja aktuális gépünk könyvtárszerkezetét, hogy benne megkereshessük a lementett JAR-állományt.

 

Ezt ezután mint "külső" erőforrást hozzá kell adnunk a projekthez, amelyet szintén jobb egérgombbal kattintva a...

 

Properties -> Build Path -> Add to Build Path

 

...parancsokkal tehetünk meg.

 

Végeredménye a Package Explorer-ben a következő lesz:

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Egy JDBC adatbázis-kapcsolat a következő szabványos műveletek szisztematikus végrehajtását jelenti:

  1. az adatbázis-meghajtó betöltése - ezt a rutint nevezik driver regisztrációnak is,

  2. az adatbázis-kapcsolat kiépítése (Connection),

  3. az SQL-művelet végrehajtásához szükséges Statement példány létrehozása, amelyek lehetnek:

    • Statement (statikus utasítás),

    • PreparedStatement (dinamikusan paraméterezett utasítás),

    • CallableStatement (tárolt eljáráshívás),

  4. az SQL-művelet eredményének feldolgozása (ez az utasítások jellegéből adódóan sokféle lehet, sokszor ResultSet objektummal van feldolgozva),

  5. a létrehozott objektum lezárása, ezek lehetnek:

    • ResultSet,
      Statement,

    • Connection.

A részletezett műveleti eseményeket a lenti ábrán folyamatában vizsgálhatjuk meg:

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

Forrás - Source - Antal Margit: Java alapú webtechnológiák - 162.oldal

 

Most pedig nézzük meg a fenti, számozott lépéseket Java-specifikusan is, azaz konkrét Java kódokat felhasználva:

 

1.

Class.forName("com.mysql.jdbc.Driver");

 

2.

Connection connection = null;

connection = DriverManager.getConnection(DataBase_URL,USER,PASSWORD);

 

3.

Statement statement = null;
statement = connection.createStatement();

 

4.

String sqlString;
sqlString = "...SQL...";
ResultSet resultSet = statement.executeQuery(sqlString);

 

while(resultSet.next()){...}

 

5.

resultSet.close();
statement.close();
connection.close();

 

A kódok ebben a formátumban természetesen nem futtathatók, a rutinokat a következő, Alapszintű kapcsolódás és lekérdezés című fejezetben fogjuk összeilleszteni.