Miskolci Egyetem Alkalmazott Informatikai Tanszék 2007

Slides:



Advertisements
Hasonló előadás
Számítógépes adatbázis-kezelés
Advertisements

Tananyag: konzultáció
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
1 Informatikai Szakképzési Portál Adatbázis kezelés Az SQL nyelv elemei.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
Adatbányászati technikák (VISZM185)
Készítsünk el egy olyan egy dokumentumos (SDI) alkalmazást, amely alkalmas a mysql adatbáziskezelővel létrehozott BANK adatbázisunk UGYFEL táblájának.
Fájlkezelés, IO Kivételkezelés Belső osztályok
Adatbázis alapú rendszerek
Fejlett Programozási Technológiák II. Világos Zsolt 7. gyakorlat.
Készítette: Sárközi Anikó
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WEB Technológiák Coldfusion ME Általános Informatikai Tsz. dr. Kovács László.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Az SQL nyelv alapjai.
Objektumorientált adatbázisok és szabványok Ispány Márton.
Java – adatbázisok elérése
Microsoft Visual FoxPro 9.0
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
APEX BMF, II. félév.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
Java programozási nyelv Filekezelés
Java programozási nyelv Adatbekérés konzolról
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
A gyakorlatok munkakörnyezete
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 3. Előadás Az SQL adatbázisnyelv (Tartalom ) Az SQL története Az SQL felépítése Adattípúsok.
Számítógépes adatbázis-kezelés
SQL Server 7 installálása. A szükséges hardver és szoftver Processzor Memória Háttértár OS Hálózat Kliensek.
1 Copyright © 2004, Oracle. All rights reserved. Bevezetés.
Palotás Ádám és Fodor Gergely Oracle Data Integrator Bemutató és gyakorlat
Excel programozás (makró)
Access adatbáziskezelés
WINDOWS FELÜGYELETI ESZKÖZÖK MICROSOFT SÚGÓ ALAPJÁN - PÉLDÁKKAL Takács Béla 2016.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
JDBC.
Alkalmazásfejlesztés gyakorlat
Alkalmazott Informatikai Tanszék
Hibernate / EclipseLink / OpenJPA összehasonlítás
Adatbázis használat a webszervernél
Kovács Gergely Péter Bevezetés
Hálózatkezelés Java-ban
Logisztikai projekt - gyakorlat Adatbázis-elmélet
MySQL DDL parancsok – Adatbázis műveletek, mezőtípusok
Előadás másolata:

Miskolci Egyetem Alkalmazott Informatikai Tanszék 2007 JDBC Miskolci Egyetem Alkalmazott Informatikai Tanszék 2007 1

A JDBC története JDBC = Java DataBase Connectivity Az SQL és a X/Open Call Level Interface (CLI) köré épül. A CLI-t a Microsoft ODBC (Open Data Base Connectivity) termékében már korábban megvalósították. Az ODBC java portolása nem járható út: ODBC egy c interfész Procedurális módszertanra épül, nehezen egyeztethető a Java OO módszeréhez ODBC sok helyen void* pointereket használ, ami sérti a Java típusbiztonságát. Egyetlen járható út a JDBC API a CLI specifikáció alapján való újratervezése volt.

A JDBC API alapszolgáltatásai: kapcsolódás a DB-hez. SQL parancsok végrehajtása SQL parancsok eredményeinek feldolgozása A JDBC-vel a kétrétegű és háromrétegű adatbázis elérési modell támogatott: kétrétegű modell: az alkalmazás közvetlenül kommunikál az adatbázis-kezelő rendszerrel. A kommunikáció, a hálózaton keresztül is történhet, amennyiben az adatbázis-kezelő egy másik számítógépen fut. Háromrétegű modell: egy középső réteget alkalmazunk az adatbázis műveletek elfedésére. Az alkalmazás, a középső réteggel kommunikál. előnyök: a szoftver karbantartási költségei lecsökkennek az optimalizálási lehetőségek jelentősen megnőnek

JDBC meghajtóprogramok A meghajtóprogramok 4 csoportja: JDBC-ODBC híd + ODBC meghajtó. Létező ODBC meghajtó elérését teszi lehetővé Az ODBC bináris meghajtó miatt ez a módszer elveszti hordozhatóságát JDBC - kliens API áthidaló. A meghajtóprogram a JDBC hívásokat közvetlenül átalakítja az adott adatbázis kliens - API hívásaira. Minden kliens gépen ott kell lennie az API-t megvalósító bináris állománynak (pl: az Oracle OCI meghajtója) A bináris meghajtó miatt ez a módszer is rontja a hordozhatóságot

JDBC – hálózati protokoll Java meghajtóprogram: a JDBC hívásokat adatbázisfüggetlen hálózati protokollhívásokká (RMI, CORBA) alakítja, amelyet egy kiszolgáló értelmez és alakít át az adott adatbázis-kezelő API-j-nak hívásává. ORACLE thin driver JDBC – saját protokoll Java meghajtóprogram: Javaban megvalósított meghajtóprogram, amely a JDBC hívásokat közvetlenül a megfelelő adatbázis-kezelő adatmanipulációs protokolljának hívásivá alakítja át. a legtöbb meghajtó ezt a modellt valósítja meg ez a modell nem DB független, de például alkalmazásszerverekben alkalmazva mégis

Kitekintés - új tendenciák A JDBC, és általában az adatbázis kezelőt használó szoftverek fejlesztése és karbantartása fárasztó feladat a számtalan hasonló, ismétlődő részfeladat miatt. Az utóbbi években számtalan eszközt fejlesztettek a nyílt forráskódú közösségek ennek enyhítésére. Az eszközök működésének alapja a relációs adatbázistáblák és Java osztályok közvetlen megfeleltetésén alapulnak: egy DB tábla minden egyes sora a táblához rendelt osztály egy-egy objektumpéldánya lesz. A tábla oszlopai pedig az osztály adatmezőinek felelnek meg. Az objektumok manipulációja automatikus SQL parancsokat generál. A két legismertebb kezdeményezés: Hibernate (www.hibernate.org) map file-ok segítségével képezi le az objektumokat DB táblákra. Többszintű cache segítségével számos esetben jelentős sebességnövekedés érhető el. JDBC-re épül. DB4o (www.db4o.com) valódi OODB megvalósítás. Nem igényel köztes map fileokat. .net, PDA megvalósítása is van.

A JDBC használata Adatbázis URL-ek. Szintaxis: jdbc:alprotokoll:adatforrás leírása A protokoll neve mindig jdbc. Alprotokoll: ezt a nevet a meghajtó forgalmazója határozza meg. Adatforrás leírása: hálózati cím, adatbázis név, jelszó, stb.. jdbc:mysql://localhost:3306/testDB jdbc:oracle:thin:@localhost:1234:mydb jdbc:JSQLConnect://mydatabase

JDBC kapcsolódás Kapcsolódás az adatbázishoz. A bemutatott példa Oracle esetén használható, de a jelölt részek cseréje után tetszőleges JDBC meghajtó esetén alkalmazható Connection connection = null; try { // Load the JDBC driver String driverName = "oracle.jdbc.driver.OracleDriver"; Class.forName(driverName); // Create a connection to the database String serverName = "127.0.0.1"; String portNumber = "1521"; String sid = "mydatabase"; String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid; String username = "username"; String password = "password"; connection = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { // nem található a meghajtó } catch (SQLException e) { // nem lehet csatlakozni az adatbázishoz }

SQL parancs futtatása Tábla létrehozása Tábla törlése try { Statement stmt = connection.createStatement(); // tábla létrehozása String sql = "CREATE TABLE mytable(szoveg VARCHAR(254))"; stmt.executeUpdate(sql); } catch (SQLException e) { } Tábla törlése try { Statement stmt = connection.createStatement(); stmt.executeUpdate("DROP TABLE my_table"); } catch (SQLException e) { }

JDBC típusok Java típusok mentése a MySQL adatbááziskezelőbe try { Statement stmt = connection.createStatement(); String sql = "CREATE TABLE mysql_all_table(" + "col_boolean BOOL, " // boolean + "col_byte TINYINT, " // byte + "col_short SMALLINT, " // short + "col_int INTEGER, " // int + "col_long BIGINT, " // long + "col_float FLOAT, " // float + "col_double DOUBLE PRECISION, " // double + "col_bigdecimal DECIMAL(13,0), " // BigDecimal + "col_string VARCHAR(254), " // String + "col_date DATE, " // Date + "col_time TIME, " // Time + "col_timestamp TIMESTAMP, " // Timestamp + "col_asciistream TEXT, " // AsciiStream (< 2^16 bytes) + "col_binarystream LONGBLOB, " // BinaryStream (< 2^32 bytes) + "col_blob BLOB)"; // Blob (< 2^16 bytes) stmt.executeUpdate(sql); } catch (SQLException e) { } Java típusok mentése a MySQL adatbááziskezelőbe

JDBC típusok Java típusok olvasása a MySQL adatbáziskezelőből try { Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mysql_all_table"); // Fetch each row from the result set while (rs.next()) { boolean bool = rs.getBoolean("col_boolean"); byte b = rs.getByte("col_byte"); short s = rs.getShort("col_short"); int i = rs.getInt("col_int"); long l = rs.getLong("col_long"); float f = rs.getFloat("col_float"); double d = rs.getDouble("col_double"); BigDecimal bd = rs.getBigDecimal("col_bigdecimal"); String str = rs.getString("col_string"); Date date = rs.getDate("col_date"); Time t = rs.getTime("col_time"); Timestamp ts = rs.getTimestamp("col_timestamp"); InputStream ais = rs.getAsciiStream("col_asciistream"); InputStream bis = rs.getBinaryStream("col_binarystream"); Blob blob = rs.getBlob("col_blob"); } } catch (SQLException e) { Java típusok olvasása a MySQL adatbáziskezelőből

Prepared Statement try { String sql = "INSERT INTO mytable (szoveg) VALUES(?)"; PreparedStatement pstmt = connection.prepareStatement(sql); // 10 sor beszúrása for (int i=0; i<10; i++) { // érték beállítása pstmt.setString(1, ”sor” + i); // az sql végrahajtása pstmt.executeUpdate(); } } catch (SQLException e) {}

Open Source adatbáziskezelők mySQL www.mysql.org postgreSQL www.postgresql.org Hipersonic SQL www.hsqldb.org

DB eszközök DBDesigner - Adatbázistervező http://fabforce.net/dbdesigner4/ DBVisualizer – Általános adatbázis megjelenítő http://www.dbvis.com/products/dbvis/dbvis51.html