Jelenlegi hely

23.1. Adatbázis beállítása

Tételezzük fel, hogy a Coffebreak nevű adatbázis már létezik. (Egy adatbázis létrehozása nem olyan bonyolult, de különleges jogokat igényel és általában az adatbázis adminisztrátor végzi el). A jegyzet példáiban használt táblák az alapértelmezett adatbázisban lesznek létrehozva. A könnyebb kezelhetőség érdekében szándékosan tartottuk alacsonyan a táblák számosságát és méretét.

Tételezzük fel, hogy a mintaadatbázist egy Coffee Break nevű kávéház tulajdonosa használja, ahol szemes kávét árulnak fontban mérve, és főzött kávét mérnek csészébe. Az egyszerűség kedvéért tételezzük fel azt is, hogy a tulajdonosnak csak két táblára van szüksége, az egyik a kávé típusok nyilvántartására, a másik a kávé kiegészítők adatainak tárolására.

Először azt mutatjuk meg, hogyan kell a DBMS-sel létrehozni egy kapcsolatot, majd miután a JDBC küldi el az SQL kódot a DBMS-nek, bemutatunk néhány SQL kódot. Ezután megmutatjuk, milyen egyszerű a JDBC-vel elküldeni ezt az SQL mondatot a DBMS-nek, és feldolgozni a visszakapott eredményt.

Ez a kód a legtöbb ismertebb DBMS-n tesztelve lett, azonban előfordulhat néhány kompatibilitási probléma a régebbi ODBC meghajtók és a JDBC-ODBC Híd használatakor.

Kapcsolat létesítése

Első lépésként a kapcsolatot kell létrehozni azzal a DBMS-sel, amit használni akarunk. Ez két lépést tartalmaz: a meghajtó betöltését és a kapcsolat megteremtését.

Meghajtó betöltése

A használandó meghajtó vagy meghajtók betöltése nagyon egyszerű, és csak egy kódsort tartalmaz. Például a JDBC-ODBC Híd meghajtót a következő kód tölti be:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

A driver dokumentációja megadja, hogy melyik osztályt kell használni. Amennyiben az osztály neve jdbc.DriverXYZ, a következő kóddal tudjuk betölteni:

Class.forName("jdbc.DriverXYZ");

Nem szükséges a meghajtót példányosítani és regisztrálni a DriverManager-rel, mert a Class.forName hívás automatikusan megteszi azt. Amennyiben saját példányt hoznánk létre, egy szükségtelen duplikáció történne, igaz, ez nem okozna hibát.

Amikor a kód betöltődött, készen állunk a kapcsolat létrehozására a DBMS-sel.

Kapcsolat létrehozása

A második lépés a kapcsolat létrejöttéhez, hogy a megfelelő meghajtó hozzá legyen kapcsolva a DBMS-hez. A következő kód bemutatja az általános eljárást:

Connection con = DriverManager.getConnection(url,
         "myLogin", "myPassword");

Ez a lépés is nagyon egyszerű, a legnehezebb dolog, hogy mit adjunk meg URL-nek. Amennyiben a JDBC-ODBC híd meghajtót használjuk, a JDBC URL így kezdődik: jdbc:odbc:. Az URL többi része általában az adatbázis vagy az adatbázis séma neve. Például, ha ODBC-t használunk egy Fred nevű ODBC adatforrás eléréséhez, a JDBC URL a következő lesz: jdbc:odbc:Fred. A mylogin helyére a DBMS-ben használt felhasználói nevet, amíg a myPassword helyére a jelszót kell behelyettesíteni. Azaz, ha a DBMS-hez a bejelentkezési név Fernanda, és a jelszó J8, csak erre a két sorra van szükség, hogy a kapcsolat létrejöjjön:

String url = "jdbc:odbc:Fred";
Connection con =
    DriverManager.getConnection(url, "Fernanda", "J8");

Amennyiben egy külső cég által fejlesztett JDBC-t használunk, a dokumentáció megmondja, milyen protokollt használjunk, mit kell a jdbc: után írnunk a JDBC URL-ben. Például, ha a meghajtó fejlesztője az acme nevet regisztrálta, az első és a második része az URL-nek a jdbc:acme:. A dokumentáció útmutatót tartalmaz a JDBC URL további részéhez is. A JDBC URL utolsó része tartalmazza az adatbázis azonosítására szolgáló információkat.

Amennyiben valamelyik betöltött meghajtó azt érzékeli, hogy a JDBC URL a DriverManager.getConnection metódussal lett betöltve, a meghajtó fogja létrehozni a kapcsolatot a DBMS-sel a JDBC URL-ben megadott módon. A DriverManager osztály (hűen a nevéhez) a háttérben lekezeli a kapcsolódás összes részletét. Ha nem írunk saját meghajtót, talán soha nem is fogjuk a Driver interfész más metódusát használni, és az egyetlen DriverManager metódus, amit igazán szükséges ismernünk, a DriverManager.getConnection.

A DriverManager.getConnection metódus által visszaadott kapcsolat egy nyitott kapcsolat, amelynek JDBC mondatokat adhatunk meg, amely eljuttatja az SQL mondatot a DBMS-nek. Az előző példában con egy nyitott kapcsolat, és a következő példához fogjuk használni.