JAVA PROGRAMOZÁS 8.ELŐADÁS



Hasonló dokumentumok
Adatbázisok webalkalmazásokban

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

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC


Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS

Programozási nyelvek Java

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Programozási nyelvek Java

A Java nyelv. VI. Adatbázis-kezelés Javaban, Példaprogram Az elôzô részben láthattuk, hogy a Java ideális programozási nyelv perszisztens objektumok

Informatika terméktervezőknek

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

MDAC - Microsoft Data Access Components

Programozási nyelvek II.: JAVA

Pénzügyi algoritmusok

B I T M A N B I v: T M A N

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

ANDROID ALKALMAZÁSFEJLESZTÉS

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

JAVA SE/ME tanfolyam tematika

Java és web programozás

Java programozási nyelv 10. rész Input/output kezelés

Database Systems II. ZH összefoglaló

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Programozási nyelvek JAVA EA+GY 1. gyakolat

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Java Database Connectivity (JDBC)

S z á m í t ó g é p e s a l a p i s m e r e t e k

Java és web programozás

1. Alapok. Programozás II

JavaServer Pages (JSP) (folytatás)

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

JDBC - adatbáziskezelés

Input Output Műveletek

1. Egyszerű (primitív) típusok. 2. Referencia típusok

RapidMiner telepítés i. RapidMiner telepítés

Adatbázis rendszerek 7. előadás State of the art

Java gyakorlat feladatai e s megolda sai ( )

Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

JAVA PROGRAMOZÁS 5.ELŐADÁS

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

AWK programozás, minták, vezérlési szerkezetek

Programozás 6. Dr. Iványi Péter

C++ programozási nyelv Konstruktorok-destruktorok

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Szövegek C++ -ban, a string osztály

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Programozás alapjai. 5. előadás

A C programozási nyelv I. Bevezetés

Programozási technológia

BME MOGI Gépészeti informatika 8.

Adatbázisok gyakorlat

Java Programozás 10. Ea: JDBC. SQLite alapokon

ELTE SAP Excellence Center Oktatóanyag 1

Pénzügyi algoritmusok

Objektumorientált Programozás IV.

SZAKDOLGOZAT. Szabó Attila

BASH script programozás II. Vezérlési szerkezetek

Objektum Orientált Programozás IV.

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programozás alapjai 9.Gy: Struktúra 2.

Java programozási nyelv 7. rész Java osztálykönyvtár 1.

Programozás I gyakorlat

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Pénzügyi algoritmusok

API tervezése mobil környezetbe. gyakorlat

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

A C programozási nyelv I. Bevezetés

Komputeralgebra rendszerek

Témák. JDBC Adatbázisok JDBC használatának lépései Tranzakciók Adatbázis tervezés EK diagram

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Bevezető. Servlet alapgondolatok

Operációs rendszerek 1.

Java grafikai lehetőségek

Java programozási nyelv 6. rész Java a gyakorlatban

AWK programozás Bevezetés

Fejlett programozási nyelvek C++ Iterátorok

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

2018, Funkcionális programozás

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Java II. I A Java programozási nyelv alapelemei

Java programozási nyelv 4. rész Osztályok II.

500. AA Megoldó Alfréd AA 500.

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Abstract osztályok és interface-ek. 7-dik gyakorlat

Adóhátralék kezelés egyszerűen. Telepítési útmutató. A program futtatásához Windows XP, Windows 7, 8 operációs rendszer szükséges.

Maximum kiválasztás tömbben

Mintavételes szabályozás mikrovezérlő segítségével

Átírás:

Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 8.ELŐADÁS 2014-2015 tavasz Véletlen elérésű állományok; JDBC

2 Véletlen elérésű állományok

A RandomAccessFile osztály 3 Közvetlen hozzáférésű állomány Írható és olvasható egyszerre Írás/olvasás egysége: bájt, primitív adat vagy String (tetszőleges objektum nem lehet!) Állománymutató (állománypozíció, file pointer) Értéke: állomány elejétől számított bájtsorszám Lekérdezhető, beállítható Olvasó, író utasítások állítják

4 Osztályhierarchia

Példa 5 RandomAccessFile raf = new RandomAccessFile("adatok.dat","rw"); raf.writechars("elejex1908vege"); long hossz = raf.length(); // hossz==28 raf.seek(10); char ch = raf.readchar(); // ch=='x' raf.writechar(ch); long poz = raf.getfilepointer(); // poz==14

A RandomAccessFile osztály 6 Konstruktorok RandomAccessFile(String name, String mode) throws FileNotFoundException RandomAccessFile(File file, String mode) mode: "r" vagy "rw Metódusok throws FileNotFoundException long getfilepointer() throws IOException void seek(long pos) throws IOException int skipbytes(int n) throws IOException long length() throws IOException void setlength(long newlength) throws IOException

A RandomAccessFile osztály 7 Metódusok: int read() throws IOException, EOFException boolean readboolean() throws IOException String readline() throws IOException String readutf() throws IOException void write(int b) throws IOException void writeboolean(boolean v) throws IOException void writebytes(string s) throws IOException void writechars(string s) throws IOException void writeutf(string s) throws IOException void close() throws IOException

Feladat - Hőmérsékletek 8 Feladat: Adatok felvitele egy állományba Adatok ki listázása Átlag érték számítás Közbeeső érték kinyerése

Feladat - Hőmérsékletek 9 Adatok bevitele:

Feladat - Hőmérsékletek 10 Tetszőleges adat kinyerése:

11 Feladat - AddressBook

12 Feladat - AddressBook

13 Feladat - AddressBook

14 Feladat - AddressBook

15 Feladat - AddressBook

A Scanner osztály 16 Szöveges adatok bevitelére használt osztály A bevitt szöveget átalakítja primitív adatokra vagy String-re A szöveget felosztja részszövegekre (token) valamilyen minta alapján (alapértelmezetten: space, tab, enter) Átalakító függvények: nextxxx() (nextint(), nextbyte(), nextfloat(), stb.) Next() String beolvasása nextline() sor bevitele

A Scanner osztály 17 Konstruktorok: paraméterként megadható egy bájtalapú stream, egy fájl vagy egy sztring

A Scanner osztály 18 Példák: Standard bemenet keyboard Scanner in1 = new Scanner(System.in); int i = in1.nextint(); Fájl-bemenet Scanner in2 = new Scanner(new File("in.txt")); while (in2.hasnextdouble()) { double d = in.nextdouble();} Sztring bemenet Scanner in3 = new Scanner("This is the input text"); while (in3.hasnext()) { String s = in.next(); }

A Scanner osztály 19 leggyakrabban a standard bemenetről való beolvasásra használjuk Példa:

A Scanner osztály 20 leggyakrabban a standard bemenetről való beolvasásra használjuk Példa:

Elválasztók (Delimiters) 21 Az alap fehér karakterek helyett lehet más elválasztót is beállítani, minták (pattern) segítségével Példa:

Elválasztók (Delimiters) 22 Példa (folytatás): Kimenet:

23 Formázott kiíratás printf()

24 A java.util.formatter osztály

25 String.format()

26 Adatbáziskezelés Jávában

JDBC 27 JDBC (Java Database Connectivity): programozói interfész (API), amely segítségével SQL parancsokat küldhetünk az adatbázisoknak és az adatbázis válaszait (eredménytáblák, visszatérési értékek, hibakódok, tárolt eljárások output paraméterei) feldolgozhatjuk Az adatbázisok eléréséhez szükséges Java osztályok a java.sql csomagban találhatók

JDBC API szolgáltatásai 28 Adatbázisok használatához az alábbi műveletekre van szükség: Összeköttetés (connection) létesítése az adatbázissal SQL utasítások végrehajtása (Select, Insert, Update, Delete, Call) Az adatbázis kezelő rendszer válaszainak feldolgozása (eredménytáblák, hibakódok, stb.)

JDBC meghajtó-programok 29 A JDBC meghajtóprogramok feladata a JDBC API és a konkrét adatbáziskezelő rendszer illesztése Többféle megvalósítása van: JDBC-ODBC áthidaló program + ODBC meghajtóprogram JDBC saját API áthidaló meghajtó-program stb

MySQL JDBC meghajtó 30 Letöltés: http://dev.mysql.com/downloads "MySQL Connectors" "Connector/J" Connector/J 5.1.{xx} select "Platform Independent" ZIP Archive (e.g., "mysql-connector- java-5.1.{xx}.zip" Kicsomagolás A "mysql-connector-java-5.1.{xx}-bin.jar fájl másolása a JAVA_HOME könyvtárba (pld. "c:\program files\java\jdk1.8.0_{xx}\jre\lib\ext")

31 JDBC architektúra

32 JDBC működési ciklusa

A meghajtó-programok kiválasztása 33 A meghajtóprogram kiválasztható: Megnevezéssel Automatikusan a DriverManager osztály segítségével A DriverManager osztály nyilvántartja a A DriverManager osztály nyilvántartja a használható meghajtóprogramokat, és az adatbázis összeköttetés létesítésekor kiválasztja a megfelelő meghajtót.

A meghajtó-program betöltése 34 A meghajtó-program kiválasztható: Megnevezéssel Automatikusan a DriverManager osztály segítségével A DriverManager osztály nyilvántartja a A DriverManager osztály nyilvántartja a használható meghajtó-programokat, és az adatbázis összeköttetés létesítésekor kiválasztja a megfelelő meghajtót.

A meghajtó-programok 35 regisztrálása Két módszerrel lehetséges: A meghajtó-program osztályának közvetlen betöltésével (Cass.forName() statikus metósussal) A jdbc.drivers rendszerparaméter beállításával. A DriverManager osztály inicializálásakor a jdbc.drivers rendszerparaméterben tárolt osztályok automatikusan betöltődnek

Adatbázis URL-ek 36 Adatbázis-URL-ek szintaxisa a következő: jdbc:alprotokoll:adatforrás, ahol a protokoll neve: jdbc az alprotokoll nevét a megfelelő meghajtó-program forgalmazója határozza meg, ezért rendszerint megegyezik a forgalmazó nevével az adatforrás leírása pedig a két adatbázis eléréséhez szükséges további adatokat (pl. adatbázis neve és a hálózat címe, a felhasználó neve és jelszava) tartalmazza Példa: jdbc:oracle:thin:@site:port:database jdbc:odbc:datasource;odbcoptions jdbc:mysql://localhost/database

Adatbázis URL-ek 37 Az összeköttetés létrehozása Connection DriverManager.getConnection(url, username, password); Az összeköttetés lezárása A Connection objektum close() metódusával lehetséges

SQL utasítások végrehajtása 38 Az SQL utasításokat az alábbi interfészek segítségével lehet kezelni Statement: egyszerű utasítások végrehajtása PreparedStatement: bemenő paraméterekkel rendelkező utasítások végrehajtása CallableStatement: be/kimenő paraméterekkel rendelkező tárolt eljárások végrehajtása

39 Példa

40 Példa

Könyvészet 41 Angster Erzsébet, Objektumorientált tervezés és programozás. Java I-II. (Bazele programării orientate pe obiecte), Ed. 4 Kör Bt., Budapesta, 2002. Kathy Sierra, Bert Bates: Agyhullám: Java, Kiskapú, 2011.