1 / 20

Java programozási nyelv 11 . rész – Adatbázis-programozás

Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember. Java programozási nyelv 11 . rész – Adatbázis-programozás. Tartalomjegyzék. Adatbázis programozás Java-ban JDBC Két- és háromrétegű adatbázis-elérési modell JDBC-ODBC kapcsolat

Download Presentation

Java programozási nyelv 11 . rész – Adatbázis-programozás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember Java programozási nyelv11. rész – Adatbázis-programozás

  2. Tartalomjegyzék • Adatbázis programozás Java-ban • JDBC • Két- és háromrétegű adatbázis-elérési modell • JDBC-ODBC kapcsolat • Adatbázis URL • Hibakezelés • SQL utasítások végrehajtása • Az SQL utasítás eredményének feldolgozása • Az SQL kurzor mozgatása • Az aktuális sor feldolgozása • Adatforrás definiálása

  3. Adatbázis programozás Java-ban • A JDBC fogalma: • programozói interface (API) SQL (Structured Query Language) utasítások végrehajtására • bár a JDBC önálló márkanév, mégis szokás Java DataBase Connectivity-nek is nevezni (Java Adatbázis Összeköttetés) • Mit jelent az API? • Application Programming Interface • Alkalmazás Programozási Interfész • Programozók számára készített eszközkészlet, könyvtár valamilyen feladatot megoldó programok készítésére • Pl. Windows API

  4. JDBC • A JDBC API szolgáltatásai • Összekapcsolódás a relációs adatbázissal • SQL utasítások végrehajtása • SQL lekérdezések eredményeinek feldolgozása • A JDBC két szintje: • JDBC alap (Core) API: java.sql csomag • az adatbázisok eléréséhez szükséges alapvető osztályok • JDBC standard kiterjesztés (Extension) API: javax.sql • további haladó szintű osztályok, pl. Java Tranzakció API (JTA) • A JDBC alkalmazásával a programjaink nemcsak platformfüggetlenek, hanem adatbáziskezelő függetlenek is lehetnek.

  5. Két- és háromrétegű adatbázis-elérési modell • Kétrétegű modell: • Java program • Adatbázis • Háromrétegű modell: • Java program • Szolgáltató réteg • Adatbázis • A két, illetve három réteg 1, 2, vagy akár 3 gépen is elhelyezkedhet. A Java mindkét megoldást támogatja. • Akár a Szolgáltató réteg is megírható Java-ban.

  6. JDBC meghajtó programok (Driver) • A JDBC API és a különböző adatbáziskezelő programok közötti kommunikációt a különböző meghajtó programok biztosítják. • Ezeket külön-külön megírják az adatbáziskezelő programok készítői. • A szükséges meghajtót, vagy meghajtókat regisztráljuk a JDBC alá, ettől kezdve a programunk képes kommunikálni az adott adatbáziskezelővel.

  7. JDBC-ODBC kapcsolat • ODBC – Open Database Connectivity • A legelterjedtebb adatbázis-hozzáférési API • platformfüggő • a Windows 2000 és XP is támogatja • nem objektumorientált • A JDBC-hez létezik ODBC meghajtó, aminek segítségével használható minden ODBC meghajtóval rendelkező adatbázis. • a driver neve: sun.jdbc.odbc.JdbcOdbcDriver • ezt fogjuk regisztrálni.

  8. Kapcsolattartás az adatbázissal • A program és az adatbázis közötti kapcsolatot a Connection osztály reprezentálja. • Egy program több adatbázissal is kapcsolatot tarthat egy időben. Ehhez egy-egy példányt kell létrehoznunk a Connection osztályból. • Egy Connection típusú objektum a kiadott SQL utasításokat és azok eredményeit tartalmazza.

  9. Adatbázis URL • Az elérni kívánt adatbázist az Internetről ismert URL technikával adjuk meg. • Az URL tartalmazza: • a használandó protokollt • az adatbázis azonosítóját • esetleges további paramétereket, pl. login név, jelszó • Egy ODBC adatforrás eléréséhez a következő URL-t használjuk: • jdbc:odbc:<ODBC adatforrás neve> • Például: jdbc:odbc:Cimek

  10. Kapcsolat felvétel az adatbázissal • Betöltjük, vagy a DriverManager-rel betöltetjük a szükséges adatbázis meghajtót. • A DriverManager-től "elkérjük" a kívánt adatkapcsolatot megadva neki az adatbázis URL-t. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection( "jdbc:odbc:Cimek","login név","jelszó" );

  11. Hibakezelés • Ha adatbáziskezelés során valamilyen hiba lép fel, akkor egy SQLException kerül kiváltásra. • A hiba szövegét a getMessage metódussal kaphatjuk meg.

  12. SQL utasítások végrehajtása • Erre szolgál a Statement interface. • A fennálló kapcsolatot reprezentáló Connection objektum createStatement metódusával létrehozunk egy utasítás objektumot. Ezzel még nem határoztuk meg a végrehajtandó SQL utasítást. Ezt három metódussal tehetjük meg: • executeQuery: Eredménytáblát visszaadó utasítások futtatására (SELECT) • executeUpdate: adatmanipulációs (INSERT, UPDATE, DELETE) és adatdefiníciós (CREATE/DROP TABLE) utasítások futtatására • execute: mindkét típus végrehajtására alkalmas

  13. Az SQL utasítás eredményének feldolgozása • Egy SQL utasításnak többféle eredménye lehet, ezért nem lehet egyszerűen a metódus által visszaadott értékben visszaadni. • A Statement különböző metódusai segítenek: • getUpdateCount(): a megváltozott sorok száma. Ezt adja vissza az ExecuteUpdate metódus is. • getResultSet(): az eredménytábla. Ezt adja vissza az ExecuteQuery metódus is. • getMoreResults(): a következő eredménykomponens feldolgozása • Nézzük meg a DBResult.java fájlt!

  14. Az eredménytábla feldolgozása • Egy SQL lekérdezés eredménye mindig egy eredménytábla (ResultSet) objektum. • Az eredménytábla méretét nem lehet előre meghatározni, ezért pufferelve kapjuk meg. • A pufferből is egyszerre egy sort látunk, erre mutat az SQL kurzor. • Kezdetben az első sor elé mutat az SQL kurzor. • Az SQL kurzor mozgatására különböző lehetőségeink vannak.

  15. Az SQL kurzor mozgatása • next(): a következő sorra lép. Hamisat ad vissza, ha nincs több sor • previous(): az előző sorra lép. Hamisat ad vissza, ha nincs több sor • last(): az utolsó sorra lép. Hamisat ad vissza, ha üres az eredménytábla • first(): az első sorra lép. Hamisat ad vissza, ha üres volt az eredménytábla • afterlast(): az utolsó sor utánra lép • beforefirst(): az első sor elé lép • absolute(): az adott sorszámú sorra lép. Ha negatív a szám, akkor hátulról számol. • relative(): relatívan mozgatja a kurzort • Az eredménytábla típusa befolyásolja, hogy mely léptetések használhatók. • A sorok számozása 1-el kezdődik!

  16. Az aktuális sor feldolgozása • Az aktuális sor adatainak lekérdezése: getMetaData() • Ez a metódus visszaad egy ResultSetMetaData interface-t. Ennek metódusai adják vissza a különböző jellemzőket. Lásd a dokumentációban! • Például a getColumnCount() adja meg az oszlopok számát. • Az egyes adatmezőket getTípus() formájú metódusokkal lehet lekérdezni paraméterként megadva az oszlop sorszámát. Az oszlopokat 1-től számozzuk. • Például: getString(1), getInt(3), stb.

  17. Az aktuális sor módosítása • Módosítható eredménytábla esetén updateTípus() formájú metódusokkal lehet módosítani a mezők tartalmát. • Ezután az updateRow() metódussal kell véglegesíteni a módosításokat. • A deleteRow() metódussal lehet törölni az aktuális sort

  18. Új sor beszúrása • Új sor beszúrása a beszúrási puffer segítségével lehetséges. • A moveToInsertRow() metódussal érhetjük el a beszúrási puffert. • Ezután az előbbi updateTípus() metódusokkal lehet beállítani a mezőket, majd az insertRow() metódussal véglegesítjük a beszúrást. • A moveToCurrentRow() metódussal térhetünk vissza a beszúrás előtti aktuális sorra, vagy valamelyik abszolút léptető utasítással bármelyikre.

  19. Adatforrás definiálása • Adatforrás létrehozása Windows 2000-ben: • Vezérlőpult • Felügyeleti eszközök • Adatforrások (ODBC) • Add (Hozzáadás) • Microsoft Access Driver (*.mdb) – Befejezés gomb • Adatforrás neve: xy • Kiválasztás gomb • Speciális gomb • Felhasználónév • Jelszó • OK gomb

  20. Példa • Nézzük meg a DBTanulok.java fájlt!

More Related