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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 Java Programozás 10. Ea: JDBC SQLite alapokon 104/1 B ITv: MAN

2 SQLite Az SQLite önálló, fájl alapú, kisméretű, C forrású programkönyvtárként megvalósított ACID-kompatibilis relációs adatbázis-kezelő rendszer, illetve adatbázismotor. A szoftvert D. Richard Hipp tervezte és alkotta meg. Az SQLite forráskódja nyílt, közkincsnek számít. Egyre több népszerű szoftver használja: 104/2 Mozilla Firefox Adobe Reader, Acrobat, Photoshop Airbus Apple Facebook Microsoft Google PHP

3 SQLite Jellemzők: 104/3 Az SQLite megvalósítja az SQL-92 szabvány nagy részét, így pl. részlegesen támogatja a triggereket és a legtöbb komplex / összetett lekérdezést Nincs benne a hagyományos SQL rendszerekben megszokott szigorú mezőtípus-kezelés, csak gyengén típusos, a mezőknek típus helyett affinitásuk (preferált típus) van. Pl: String típusú adat beilleszthető integer affinitású oszlopba; ha az SQLite sikeresen tudja konvertálni integerré, akkor úgy tárolja, egyébként meghagyja az adat eredeti típusát! Kis erőforrás igényű (1 MB alatti méretű az adatbázis motor) Több szálon futtatható, több felhasználós rendszer Sok programnyelvből elérhető: BASIC, C, C++, Java, C#, Visual Basic, PHP, Ruby, Python

4 SQLite Letöltése: 104/4

5 SQLite JDBC driver letöltése: 104/5

6 SQLite Telepítés: Hozzunk létre egy könyvtárat az adatbázis kezelő számára, és csomagoljuk ki oda a dll-t és a tools-t. Kész! A mappa tartalma: Lépjünk be a Java munkakönyvtárunkba, és csomagoljuk ki oda a jdbc drivert. Kész! 104/6

7 SQLite Kipróbálás: Indítsuk el a Parancssort Lépjünk át az adatbázis könyvtárába. Indítsuk el az adatbázist: sqlite3 Írassuk ki a rendszerdátumot: select date('now'); Működik! Help:.help Kilépés:.quit 104/7

8 SQLite Adatbázis létrehozása Ha csak elindítjuk a szervert, akkor az csak a memóriában kezeli az adatokat. Ahhoz, hogy az adatok megmaradjanak, létre kell hozni egy adatbázist. A létrehozott adatbázisfájl a munkakönyvtárba kerül, neve az lesz, amit megadtunk (lehet tetszőleges a kiterjesztése!) Adjuk ki a.open empdb.db parancsot, így létrejön az empdb.db adatbázis. Ha nem kapunk hibaüzenetet, a parancs rendben lefutott! 104/8

9 SQLite Tábla létrehozása 104/9 Megnyitni egy adatbázis a.open név paranccsal lehet A létrehozott / megnyitott adatbázisban gépeljük be a következő parancsot: create table emp( kod integer primary key, nev text, szulido date, lakohely text, iq integer); Több sorba beírt parancsnál a > jelzi, hogy a parancs még nem fejeződött be. A parancs végét a ; jelzi az értelmezőnek A beírt parancs végén ENTER Ha nem kapunk hibaüzenetet, a parancs rendben lefutott!

10 SQLite Adatbevitel Írjuk be a következő parancsokat: insert into emp values(31,"jég Elek"," ","Miskolc",112); insert into emp values(32,"rossz Géza"," ","Miskolc",105); insert into emp values(33,"keksz Zoé"," ","Eger",125); Írassuk ki az adatainkat: select * from emp; Kész! Jöhet a távoli adatelérés JDBC-vel! 104/10

11 104/11

12 A cél: Javás kliensről manipulálni az adatbázist. 104/12

13 A probléma és megoldása A Java objektum-orientált, az adatbázisok többnyire még nem azok. Az adatbázis eléréséhez szükséges egy interfész, ennek kezelése lehet adatbázis függő API-hívások JNI-n keresztül (Java Native Interface), de lehet adatbázis független is JDBC (Java Data Base Connectivity). Adatmanipulációs nyelv mindkét esetben az SQL marad. 104/13

14 JDBC API Java nyelven íródott osztályokat és interfészeket tartalmazó csomagok, melyek egy standard API-t biztosítanak adatbázis-keretrendszerek, valamint adatbázis alapú alkalmazások fejlesztésére. A JDBC API előnye abban áll, hogy elvileg bármilyen adatforrást elérhetünk vele bármilyen platformon, melyen a java virtuális gép futtatható. Nem kell tehát minden adatbázisszerverre külön programot írni, hanem ugyanaz a kód működni fog bármely adatbázisszerverrel. 104/14

15 JDBC használat Adatbázis feltétel: szükséges egy meghajtó-program (driver), amellyel az adatbázis-kezelő kielégíti a JDBC specifikációt. A driver rendszerfüggő, az adatbázis gyártójának weblapjáról kell letölteni. Java programozó: a java.sql és a javax.sql csomagokban található osztályok, metódusok segítségével dolgozik, és a programhoz csatolja a használt adatbázis-kezelő JDBC driver-ét. 104/15

16 A megoldás (1.) Kétrétegű megoldás Kliens-oldal Szerver-oldal SQL Driver Piros, Kék, Zöld 104/16

17 A megoldás (2.) Háromrétegű megoldás Kliens-oldal Szerver-oldal Alkalmazás DB SQL Driver Piros, Kék, Zöld 104/17

18 Az adatbázis-programozás lépései Driver regisztrálása Kapcsolódás a DBMS-hez SQL kérés (STATEMENT) összeállítása Kapcsolódás Lekérdezés SQL kérés elküldése 104/18 Az eredményhalmaz (CURSOR) rekordonkénti bejárása Az értékek átadása programváltozóknak Eredményhalmaz lezárása SQL kérés lezárása Kapcsolat lezárása Eredmények feldolgozása Lekapcsolódás

19 JDBC alapok Kliens számítógép SQLite SQLite 104/19

20 JDBC osztályok/interfészek DriverManager getconnection preparestatement Connection extends Statement PreparedStatement extends Class Interface CallableStatement executequery setxxx DataType 104/20 ResultSet

21 Az adatbázis-programozás lépései Kapcsolódás Driver regisztrálása 1. Lekérdezés Kapcsolódás a DBMS-hez 2. Eredmények feldolgozása Lekapcsolódás 104/21

22 A Driver (meghajtó) betöltése (1) Feltétel: a Java keresési útvonalán elérhető legyen a fizikai driver. SQLite-hoz: sqlite-jdbc jar Kialakítása: 1. Másoljuk be a drivert a Java munkakönyvtárba (megtörtént) 2. Készítsünk a könyvtárba egy ini.bat nevű fájlt, tartalma: 3. Ha beléptünk a könyvtárba, indítsuk el a fájlt: ini 104/22

23 A driver regisztrálása Ha a driver elérhető a keresési útvonalon, regisztrálható Javaban: import java.sql.*; 1. public void Reg(){ try { Class.forName("org.sqlite.JDBC"); catch (ClassNotFoundException e) { System.out.println("Hibás driver regisztráció!"+e.getmessage()); Ha nem regisztráljuk a drivert, a DriverManager kapcsolódáskor megpróbálja megkeresni a drivert. A keresési útvonalat végignézi, és ha van a kérésnek megfelelő driver, akkor azon keresztül teremt kapcsolatot! 104/23

24 A DriverManager működése A DriverManager osztály tartalmaz egy listát a regisztrált driverekkel. A getconnection() metódus hívásakor megpróbálja megtalálni a megfelelő drivert, mely kapcsolódni tud az URL-ben megadott adatbázishoz (sorba kipróbálja a drivereket, míg egyet talál, amely kapcsolódik a megfelelő URL segítségével) Ezt a manager-szintet el lehet kerülni direkt Driver metódus hívásával. (csak ritkán használjuk, pl. ha két driver is van, amelyik hozzá tud kapcsolódni egy bizonyos adatbázishoz és explicit szeretnénk meghatározni, hogy melyikkel akarunk kapcsolódni.) 104/24

25 JDBC driver-ek A driver egy kliens oldali adapter (program), mely a java program kéréseit átalakítja az adatbázisszerver számára értelmezhető formára, és az adatbázisszerver által küldött válaszokat visszaalakítja a java program számára értelmezhető formára. Besorolásuk (típusok): Type 1: JDBC ODBC átjáró (híd), Type 2: JDBC Natív API driver Type 3: JDBC Hálózat protokoll (köztesréteg driver) Type 4: JDBC Direkt adatbázis driver 104/25

26 Type 1: JDBC ODBC átjáró Java program Type 1 Adatbázis kezelő program JDBC- ODBC átjáró ODBC driver Natív program könyvtár hálózati adatbázis protokoll Adatbázis Kliens oldal Szerver oldal Már meglévő ODBC driver használatát teszi lehetővé A Type 1 driver átalakítja a JDBC hívásokat ODBC hívásokká Az ODBC driver egy az adatbázis gyártója által készített driverhez (natív program könyvtár) kapcsolódik, ez már eléri az adatbázist Ez a leglassabb driver típus 104/26

27 Type 2: JDBC Natív API driver Java program Type 2 Natív API driver Natív program könyvtár Kliens oldal Adatbázis kezelő program hálózati adatbázis protokoll Szerver oldal Adatbázis Natív program könyvtár: az adatbázis típusától függő, az adatbázis készítői által írt driver. (Natív Közvetlenül érthető, nem igényel további átalakítást, konvertálást. A Type 2 JDBC driver a JDBC hívásokat közvetlenül átalakítja az adott típusú adatbázis API hívásaira. Gyorsabb, mint a Type 1 JDBC driver. 104/27 Ilyen típusúak pl. az Oracle oci driverek.

28 Type 3: JDBC Hálózati protokoll (köztesréteg driver) Java program Type 3 Hálózati protokoll Alkalmazás szerver Adatbázis kezelő program hálózati adatbázis protokoll Adatbázis Kliens oldal Köztes réteg Szerver oldal A Javában írt, hordozható driver a JDBC hívásokat adatbázisfüggetlen hálózati protokollhívásokká alakítja, melyeket egy megfelelő szerverprogram értelmez és alakít át az adott adatbáziskezelő API-jának hívásaivá. A Type 3 JDBC driver nem közvetlenül az adatbázissal, hanem egy külön szerverprogrammal kommunikál. 104/28

29 Type 4: JDBC Direkt adatbázis driver Java program Type 4 Direkt adatbázis driver Adatbázis kezelő program hálózati adatbázis protokoll Adatbázis Kliens oldal Szerver oldal Javában írt meghajtó program, amely a JDBC hívásokat közvetlenül a megfelelő adatbázis-kezelő adatmanipulációs protokolljának hívásaivá alakítja át. Nincs szükség közbenső szerverprogramra. Ez a leggyorsabb driver típus. Ilyen típusú az SQLite driver. 104/29

30 Kapcsolat létrehozása import java.sql.*; private static Connection conn = null; public void Connect() { try { String url = "jdbc:sqlite:c:/sqlite3/empdb.db"; conn = DriverManager.getConnection(url); System.out.println("Connection OK!"); catch (SQLException e) { System.out.println("JDBC Connect: "+e.getmessage(), 0); 2. A DriverManager-től kérünk egy Connection-t (kapcsolatot), és ezen a kapcsolaton keresztül kezeljük ezután az adatbázis adatait. Az url függ a driver és az adatbázis típusától, az adatbázis helyétől, más adatbázisok esetén tartalmazza a user nevét és jelszavát is. 104/30

31 Az adatbázis-programozás lépései Kapcsolódás Lekérdezés SQL kérés (Statement) vagy 3. (PreparedStatement) összeállítása Eredmények feldolgozása SQL kérés elküldése 4. Lekapcsolódás 104/31

32 Munka az adatbázisban Amint a kapcsolat létrejött, az adatbázisnak küldhetünk SQL parancsokat. A JDBC API nem korlátoz a kiadható SQL parancsok tekintetében: azaz adatbázis-specifikus, de akár nem SQL parancsokat is használhatunk. Azt azonban biztosítanunk kell, hogy az adatbázis fel tudja dolgozni a parancsokat. Pl. hívhatunk tárolt eljárásokat egy olyan adatbázisra, amelyik nem támogatja ezeket, de ez esetben a kód kivételt fog kiváltani. A munkavégzést három kategóriába sorolhatjuk: Egyszer kiadandó parancsok Ismétlődő (paraméterezhető) parancsok Lekérdezések, melyeknek visszatérő adathalmaz az eredménye 104/32

33 Munka az adatbázisban Egyszer kiadandó parancsok Statikus parancsok, melyeket nem lehet ciklikusan egymás után többször végrehajtani Pl: Insert, Update, Delete, Create, Drop, Alter Lehet paraméterük, de a paraméterekkel összeépített parancs egy statikus parancsként kerül végrehajtásra 104/33 Küldésére a Statement interfész használható A Statement egy paraméter nélküli SQL parancs fogadására kéri fel adatbázist Végrehajtására az alábbi metódusok használhatók: execute("sqlp"); executeupdate("sqlp");

34 Statement létrehozása, végrehajtása public void insert(int k, String n, String d, String l, int i){ String sqlp = "insert into emp values("+k+", '"+n+ 3. "', '"+d+"', '"+l+"', "+i+")"; System.out.println(sqlp); try { s = conn.createstatement(); s.execute(sqlp); 4. System.out.println("insert OK!"); catch (SQLException e) { System.out.println("JDBC insert: "+e.getmessage()); insert(35,"bőr Önd"," ","Miskolc",66); 104/34

35 Munka az adatbázisban Ismétlődő (paraméterezhető) parancsok Dinamikus parancsok, melyeket lehet ciklikusan egymás után többször végrehajtani Átküldjük az adatbázisnak a parancs szerkezetét, melyben?-ek jelzik a változó paramétereket, ezután ciklusban beállítjuk a paraméterek értékét, és végrehajtjuk a parancsot 104/35 Küldésére a PreparedStatement interfész használható Mely egy paraméteres SQL parancs fogadására kéri fel adatbázist Végrehajtására az alábbi metódusok használhatók: execute("sqlp"); executeupdate("sqlp");

36 PreparedStatement létrehozása, végrehajtása public void insertall(emp[] t) { 104/36 String sqlp = "insert into emp(kod,nev,szulido,lakohely,iq) String date=""; try { pstmt = conn.preparestatement(sqlp); for (int i = 0; i < t.length; i++) { pstmt.setint(1, t[i].getkod()); pstmt.setstring(2, t[i].getnev()); date = sdf.format(t[i].getszulido()); pstmt.setstring(3, date); pstmt.setstring(4, t[i].getlakohely()); pstmt.setint(5, t[i].getiq()); pstmt.execute(); System.out.println("Adatok kiírva!"); values(?,?,?,?,?)"; catch (SQLException e) {System.out.println(e.getMessage()); public class Emp { private int kod; private String nev; private Date szulido; private String lakohely; private int iq;

37 Az adatbázis-programozás lépései Kapcsolódás Lekérdezés Az eredményhalmaz (CURSOR) visszakérése: ResultSet 5. Eredmények feldolgozása A ResultSet rekordonkénti bejárása, az értékek átadása programváltozóknak 6. Lekapcsolódás 104/37

38 Munka az adatbázisban Lekérdezések Adatokat adnak vissza A visszaadott adatszerkezet SQL neve: CURSOR A visszaadott adatszerkezet Java neve: ResultSet A parancskiadás interfésze általában Statement Lehet PreparedStatement is A végrehajtás metódusa: executequery("sqlp"); Az adatokat a getresultset() metódussal kérjük vissza, és egy ResultSet-ben kapjuk vissza. Ciklussal bejárjuk a ResultSet-et, átadjuk az értékeket program változóknak, és feldolgozzuk azokat. Végül lezárjuk a ResultSet-et. 104/38

39 ResultSet használata public void selectall(){ String nev="", szid="", lak=""; int kod=0, iq=0; String sqlp= "select * from emp"; try { s = conn.createstatement(); rs = s.executequery(sqlp); 5. while(rs.next()) { kod = rs.getint("kod"); nev = rs.getstring("nev"); 6. szid = rs.getstring("szulido"); lak = rs.getstring("lakohely"); iq = rs.getint("iq"); System.out.println(""+kod+": "+nev+": "+szid+": "+lak+": "+iq); rs.close(); System.out.println("selectAll completed!"); 104/39 catch (SQLException e) {System.out.println(e.getMessage());

40 Az adatbázis-programozás lépései Kapcsolódás Lekérdezés Eredmények feldolgozása Eredményhalmaz lezárása SQL kérés lezárása Lekapcsolódás Kapcsolat lezárása /40

41 Erőforrások felszabadítása ResultSet lezárása: rs.close(); 7. Statement lezárása: stmt.close(); PreparedStatement lezárása: pstmt.close(); 8. Kapcsolat lezárása: public void disconnect(){ 9. try { conn.close(); catch (SQLException e) {System.out.println(e.getMessage()); 104/41

42 A main program import java.sql.*; import java.text.simpledateformat; import java.text.parseexception; import java.util.date; public class Main { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); private static Connection conn = null; private static Statement s = null; private static ResultSet rs = null; private static PreparedStatement pstmt = null; public static void main(string[] args) { 104/42 Emp[] emp = new Emp[3];

43 A main program emp[0] = new Emp(36,"Kis Ábel",StoD(" "),"Ózd",97); emp[1] = new Emp(37,"Kis Erwin",StoD(" "),"Eger",116); emp[2] = new Emp(38,"Kis Farkas",StoD(" "),"Miskolc",125); Connect(); insert(35,"bőr Önd"," ","Miskolc",66); insertall(emp); selectall(); disconnect(); public static Date StoD(String s){ Date testdate = null, vid = null; try {testdate = sdf.parse(s); catch (ParseException e){return vid; if (!sdf.format(testdate).equals(s)){return vid; return testdate; 104/43

44 Munka az adatbázisban JDBC interfészek SQL parancsok küldésére: 1. Statement paraméter nélküli SQL parancsok hívására 2. PreparedStatement paraméteres (?), előfordított SQL parancsok hívására 3. CallableStatement Tárolt eljárásokhoz (az SQLite nem támogatja, sem a hívást, sem a tárolt eljárásokat!) Végrehajtási módok: 1. executeupdate(): Adatmanipulációs (DML: insert, update, delete) és adatdefiníciós (DDL: create/drop/alter) utasítások futtatására 2. executequery(): Eredménytáblát visszaadó utasítások futtatására (SELECT) 3. execute(): 104/44 Mindkét típus végrehajtására alkalmas

45 JDBC osztályok/interfészek DriverManager getconnection preparestatement Connection extends Statement PreparedStatement extends CallableStatement executequery setxxx DataType 104/45 ResultSet

46 104/46

47 Eclipse megoldás grafikus felületen 1. Projekt létrehozása: File\New\Java project Neve: sqliteprb 2. Kezdő panel létrehozása: New\Swing\JFrame Neve: ABKezeloPrg 3. Panelen az elrendezés menedzser kikapcsolása: 1. Jobb klikk a panel közepére\set layout\absolute layout 4. Nyomógomb felrakása: Components\JButton Variable: btnreg text: Driver regisztráció Eseménykezelő hozzáadása a gombhoz: dupla kattintás a gombra 104/47

48 A driver regisztráció kódja btnreg.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { Reg(); ); public void Reg(){ try { Class.forName("org.sqlite.JDBC"); SMD("Sikeres driver regisztráció!"); catch (ClassNotFoundException e) { SMD("Hibás driver regisztráció!"+e.getmessage()); public void SMD(String msg){ JOptionPane.showMessageDialog(null, msg, "ABKezelő Üzenet", 2); Ha szükséges: Jobb klikk a fel nem ismert elemre\source\organize Imports 104/48

49 A driver betöltése a projektbe 1. A fájlrendszerben fogjuk meg egérrel a jdbc drivert, és húzzuk rá a projekt nevére (sqliteprb), engedjük el 2. A megjelenő panelen válasszuk a Copy Files opciót 3. Jobb klikk a bemásolt driver nevére\build Path\Add to Build Path Ezzel adtuk hozzá a projekt keresési útvonalához a fizikai jdbc drivert. 4. Indítsuk el a projektet, Regisztráljunk! 104/49

50 Új adatsor beszúrása az adatbázisba 1. Panel létrehozása: New\Swing\JDialog Neve: NewEmp A Generate JDialog with OK and Cancel buttons opciót kapcsoljuk ki! 2. Panelen az elrendezés menedzser kikapcsolása: Jobb klikk a panel közepére\set layout\absolute layout 3. Feliratok (JLabel) és szövegmezők (JTextField) felrakása A feliratok változóneve lényegtelen A szövegmezők változóneve rendre: kod, nev, szid, lak, iq 4. Készítsük el e Beszúr (btnbeszur) gombot, aztán adjunk hozzá eseménykezelőt. 104/50

51 A beszúráshoz szükséges metódusok public void Connect() { try { String url = "jdbc:sqlite:c:/users/bitman/documents/sqlite3/empdb.db"; conn = DriverManager.getConnection(url); SMD("Connection OK!"); catch (SQLException e) { SMD("JDBC Connect: "+e.getmessage()); public void disconnect(){ try { conn.close(); catch (SQLException e) {SMD(e.getMessage()); 104/51

52 A beszúráshoz szükséges metódusok public void Insert(String kod, String nev, String szid, String lak, String iq) { String sqlp = "insert into emp values("+kod+", '"+nev+"', '"+szid+ "', '"+lak+"', "+iq+")"; try { s = conn.createstatement(); s.execute(sqlp); SMD("insert OK!"); catch (SQLException e) { SMD("JDBC insert: "+e.getmessage()); Szükséges változó deklaráció: private Statement s = null; private Connection conn=null; Munkát megkönnyítő metódus: public String RTF(JTextField jtf) { return jtf.gettext(); 104/52

53 A beszúrás kódja btnbeszur.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { Connect(); Insert(RTF(kod), RTF(nev), RTF(szid), RTF(lak), RTF(iq)); disconnect(); ); 104/53

54 A NewEmp panel beépítése a programba Most önállóan működőképes, mert van benne main metódus Töröljük ki a teljes main metódust! Az ABKezeloPrg panelre tegyünk egy Új adatsor (btnujadat) gombot Adjunk a gombhoz eseménykezelőt, melynek kódja: btnujadat.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { NewEmp ne = new NewEmp(); ne.setvisible(true); ); 104/54

55 Lista panel kialakítás tábla modell létrehozása A táblázat kezelése egy táblamodellel kezdődik. A modellben lehet megadni az egyes mezők típusát és szerkeszthetőségét. A DefaultTableModel leszármaztatásával jön létre, konstruktorában kapja meg a mezőneveket, és az oszlopok számát. Programlogika: 1. Egy modellt használnánk csak a programban az egyszerűség miatt 2. A módosításnál és a törlésnél ki kell jelölni egy rekordot, így szükséges egy jelölhető (logikai típusú) mező a sor elejére 3. A mezők típusa rendre: logikai, egész, szöveg, szöveg, szöveg, egész 3. Csak a legelső (logikai) mezőnek kell szerkeszthetőnek lennie (a kijelölhetőség miatt!) 104/55

56 Lista panel kialakítás tábla modell létrehozása File \ New \ Class - Neve legyen: EmpTM 104/56

57 Lista panel kialakítás tábla modell létrehozása import javax.swing.table.defaulttablemodel; public class EmpTM extends DefaultTableModel { public EmpTM (Object fildnames[], int rows){ super(fildnames, rows); 104/57 Zöld: kötelező rész, minden táblamodellben egyforma! Konstruktor: megkapja a mezők nevét és a sorok számát. public boolean iscelleditable(int row, int col) { if (col == 0) {return true; return false; Szerkeszthetőség: a 0. oszlop minden sora szerkeszthető, a többi cella nem! public Class<?> getcolumnclass(int index){ if (index == 0) return(boolean.class); else if (index==1 index==5) return(integer.class); return(string.class); Oszlopok típusa: a 0. oszlop logikai, az 1. és az 5. egész, a többi szöveges!

58 Listázás 1. Panel létrehozása: New\Swing\JDialog Neve: EmpList A Generate JDialog with OK and Cancel buttons opciót kapcsoljuk ki! 2. Panelen az elrendezés menedzser kikapcsolása: Jobb klikk a panel közepére\set layout\absolute layout 3. Készítsük el e Bezár (btnbezar) gombot, aztán adjunk hozzá eseménykezelőt. 4. Adjunk egy JTable-t a panelhez: 104/58

59 Lista panel kialakítás a panel létrehozása Adjunk a JTable-höz egy JScrollPane-t (görgetősávok) /59

60 Lista panel kialakítás a panel létrehozása Futtassuk a kódot, nézzük meg a panelt! 104/60

61 Lista panel kialakítás a panel létrehozása Kódbűvölés következik! Az osztály elejére: private EmpTM etm; A JTable kódjába: A kódból töröljük a main függvényt! table = new JTable(etm); A táblázatban az etm modell fog megjelenni Nem lesz önállóan futtatható a panel, ezért nem kell bele a main függvény! 104/61

62 Lista panel kialakítás a panel létrehozása Alakítsuk át a konstruktor elejét: public EmpList(JFrame f, EmpTM betm) { super(f, "Dolgozók listája", true); etm = betm; Tulajdonos, ablak címe, modális jelző A konstruktor kódjának végére írjuk be a következőket: Modális ablak lesz, melyet be kell zárni ahhoz, hogy az alatta lévő ablak újra aktív legyen! TableColumn tc = null; for (int i = 0; i < 6; i++) { tc = table.getcolumnmodel().getcolumn(i); if (i==0 i==1 i==5) tc.setpreferredwidth(30); else {tc.setpreferredwidth(100); 104/ Oszlopszélesség megadása: a teljes szélességet felosztja az itt megadott értékek arányában!

63 Lista panel kialakítás a panel létrehozása A konstruktor kódjának végére írjuk be a következőket: table.setautocreaterowsorter(true); AutoSorter bekapcsolása TableRowSorter<EmpTM> trs = (TableRowSorter<EmpTM>)table.getRowSorter(); trs.setsortable(0, false); A 0. oszlop rendezhetőségének letiltása 104/63

64 Lista panel kialakítás a panel bezárása Kattintsunk duplán a Bezár gombon Dizájn nézetben, így az Eklipsz hozzáad egy eseménykezelőt a gombhoz, és megnyitja a kódot! Írjuk be a Bezár gomb kódját: JButton btnbezar = new JButton("Bez\u00E1r"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { dispose(); setvisible(false); ); dispose(): eltűnik a képernyőről a panel, de a referenciái megmaradnak. 104/64 setvisible(false): eltűnik a képernyőről a panel, de a referenciái megmaradnak. A két utasítás hatása ugyanaz, elég az egyiket használni!

65 A Lista panel megjelenítése (az ABKezeloPrg-ben) Készítsük el e Listázás (btnlista) gombot, aztán adjunk hozzá eseménykezelőt. Az osztály elejére: private EmpTM etm; A Lista gomb kódja: btnlista.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { EmpList el = new EmpList(ABKezeloPrg.this, etm); el.setvisible(true); Megjelenítés ); Példányosítás A konstruktor végére: Mezőnevek megadása Object emptmn[] = {"Jel","Kód","Név","Szülidő","Lakóhely","IQ"; etm = new EmpTM(emptmn, 0); etm példányosítása: mezőnevekkel, 0 darab sorral 104/65

66 A Lista panel kipróbálása (az EmpProgramban) 104/66

67 Listázás szükséges metódusok (az ABKezeloPrg-ben) Connect() disconnect() private Connection conn = null; private Statement s = null; private ResultSet rs = null; public void Lista() { String nev="", szid="", lak=""; int kod=0, iq=0; String sqlp= "select kod,nev,szulido,lakohely,iq from emp"; try { s = conn.createstatement(); rs = s.executequery(sqlp); while(rs.next()) { kod = rs.getint("kod"); nev = rs.getstring("nev"); szid = rs.getstring("szulido"); lak = rs.getstring("lakohely"); iq = rs.getint("iq"); etm.addrow(new Object[]{false, kod, nev, szid, lak, iq); rs.close(); catch (SQLException e) {SMD(e.getMessage()); 104/67

68 A Listázás gomb kódjának módosítása btnlista.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { for (int i = etm.getrowcount() - 1; i >= 0; i--) etm.removerow(i); Connect(); Lista(); disconnect(); EmpList el = new EmpList(ABKezeloPrg.this, etm); el.setvisible(true); ); 104/68

69 Adatmódosítás Ötlet: Ha rakunk a lista panelre egy Módosítás gombot, a kijelölt rekord módosítható. A módosítás paneljét a NewEmp panel alapján létrehozhatjuk: Másoljuk le az osztályt a Package Explorerben: Ctrl + C Ctrl + V Új név: ModEmp Egészítsük ki a panelt: Jobb klikk\open With\Window Builder Editor A kód mező értéke nem módosítható Az új mezők változóneve rendre: nev2, szid2, lak2, iq2 Az eredeti adatok mezői nem szerkeszthetők (editable: false) A gomb változóneve: btnmod 104/69

70 Kódbűvölés a ModEmp osztályban Az osztály elejére: public ModEmp(JDialog d, String bekod, String benev, String beszid, String belak, String beiq) { super(d, "Adatok módosítása", true); A bal oldali szövegmezők módosítása: kod = new JTextField(bekod);... nev = new JTextField(benev);... Egy újabb adatkiolvasó metódus a meglévő mellé: public String RTF2(JTextField jtf2, JTextField jtf) { if (jtf2.gettext().length()==0) return jtf.gettext(); else return jtf2.gettext(); 104/70

71 Kódbűvölés a ModEmp osztályban A módosítás metódusa: public void Update(String kod, String nev, String szid, String lak, String iq) { String sqlp = "update emp set nev='"+nev+"', szulido='"+szid+ "', lakohely='"+lak+"', iq="+iq+" where kod="+kod; try { s = conn.createstatement(); s.execute(sqlp); SMD("Update OK!"); catch (SQLException e) { SMD("JDBC Update: "+e.getmessage()); 104/71

72 Kódbűvölés a ModEmp osztályban A módosítás metódus meghívása (a Módosít gomb kódja): btnmod.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { Connect(); Update(RTF(kod), RTF2(nev2,nev), RTF2(szid2,szid), RTF2(lak2,lak), RTF2(iq2,iq)); disconnect(); ); 104/72

73 Kódbűvölés az EmpList osztályban Rakjuk fel a Módosítás (btnmod) gombot Egy indexekkel definiált elem értékét kiolvasó, visszaadó metódus: public String RTM(int row, int col) { return etm.getvalueat(row, col).tostring(); 104/73

74 Kódbűvölés az EmpList osztályban A módosítás logikája: 1. Ki kell jelölni egy sort a táblázatban 1. Ellenőrizni kellene, hogy csak 1 sor legyen kijelölve! 2. Meg kell határozni, melyik sor van kijelölve, ki kell olvasni az adatait, és továbbítani a ModEmp panel felé A Módosítás gomb kódja: btnmod.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { int jel=0, x=0; for(x = 0; x < etm.getrowcount(); x++) if ((Boolean)etm.getValueAt(x,0)) {jel=x; ModEmp me = new ModEmp(null, RTM(jel,1), RTM(jel,2), RTM(jel,3), RTM(jel,4), RTM(jel,5)); me.setvisible(true); ); 104/74

75 Teszt 104/75

76 Törlés A törlés logikája: 1. Ki kell jelölni egy sort a táblázatban 1. Ellenőrizni kellene, hogy csak 1 sor legyen kijelölve! 2. Meg kell határozni, melyik sor van kijelölve, ki kell olvasni a kódot belőle, és a kód alapján kitörölni az adatbázisból a rekordot. 3. Ezután frissíteni kell a táblázat adatait 1. Ki kell törölni belőle minden sort 2. Meg kell hívni a Lista metódust (előbb természetesen át kell másolni ide az ABKezeloPrg-ből) Rakjuk fel a Törlés (btntorol) gombot 104/76

77 Törlés A Törlés metódusa: public void Delete(String kod) { String sqlp = "delete from emp where kod="+kod; try { s = conn.createstatement(); s.execute(sqlp); SMD("Delete OK!"); catch (SQLException e) { SMD("JDBC Delete: "+e.getmessage()); 104/77

78 Törlés A Törlés gomb kódja: btntorol.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { int jel=0, x=0; for(x = 0; x < etm.getrowcount(); x++) if ((Boolean)etm.getValueAt(x,0)) {jel=x; Connect(); Delete(RTM(jel,1)); for (int i = etm.getrowcount() - 1; i >= 0; i--) etm.removerow(i); Lista(); disconnect(); ); A megfelelő működéshez természetesen szükséges a connect, a disconnect, a lista metódus, és néhány változó deklaráció is! 104/78

79 Új dolgozó (NewEmp) panel átalakítása Programlogika: 1. Legyen ez az ablak is modális. (most nem az!) 2. Legyen az ablaknak címe (fejléce, neve Új dolgozó felvitele) 3. A Beszúr gomb megnyomásakor a program ellenőrizze le: ki vannak-e töltve a mezők, (filledtf), a születési idő dátum-e, (gooddate) a kód és az iq mezőben egész szám van-e (goodint)! 104/79

80 Új dolgozó panel kódbűvölés A konstruktorba: public NewEmp(JFrame f) { super(f, "Új dolgozó felvitele", true); Az ABKezeloPrg-ben a hívó utasítás: NewEmp ne = new NewEmp(ABKezeloPrg.this); A filledtf metódus: public String RTF(JTextField jtf) { return jtf.gettext(); public boolean filledtf(jtextfield jtf) { String s = RTF(jtf); if (s.length() > 0) return true; else return false; 104/80

81 Új dolgozó panel kódbűvölés A gooddate metódus: public boolean gooddate(jtextfield jtf) { String s = RTF(jtf); Date testdate = null; try { testdate = sdf.parse(s); catch (ParseException e){return false; if (sdf.format(testdate).equals(s)) return true; else return false; Szükséges változó: private SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); Szükséges importok: import java.util.date; import java.text.simpledateformat; import java.text.parseexception; 104/81

82 Új dolgozó panel kódbűvölés A goodint metódus: public boolean goodint(jtextfield jtf) { String s = RTF(jtf); try { Integer.parseInt(s); return true; catch (NumberFormatException e){return false; 104/82

83 Új dolgozó panel kódbűvölés A btnbeszur gomb (Beszúrás) kódja: btnbeszur.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { if (!filledtf(kod)) SMD("A kód mező üres!"); else if (!goodint(kod)) SMD("A kód mezőben hibás számadat van!"); else if (!filledtf(nev)) SMD("A név mező üres!"); else if (!filledtf(szid)) SMD("A születési idő mező üres!"); else if (!gooddate(szid)) SMD("A születési idő mezőben hibás dátum van!"); else if (!filledtf(lak)) SMD("A lakóhely mező üres!"); else if (!filledtf(iq)) SMD("Az iq mező üres!"); else if (!goodint(iq)) SMD("Az iq mezőben hibás számadat van!"); else { Connect(); Insert(RTF(kod), RTF(nev), RTF(szid), RTF(lak), RTF(iq)); disconnect(); 104/83 );

84 Új dolgozó panel kódbűvölés Az adatbázis kezelő metódusok átszervezése egy külső osztályba: Oka: leegyszerűsíti, átláthatóbbá teszi a munkát és a kódot. Minden AB-kezelő metódus ide kerülhet, így elég 1 példányban megírni őket. Ezt az osztályt minden olyan osztályban példányosítani kell, ahol adatbázis kezelés van, és a példányon kell végrehajtani a műveleteket. File \ New \ Class - Neve legyen: ABManager 104/84

85 Az ABManager osztály kódja public class ABManager { private Connection conn = null; private Statement s = null; private ResultSet rs = null; public void Connect() { try { String url = "jdbc:sqlite:c:/users/bitman/documents/sqlite3/empdb.db"; conn = DriverManager.getConnection(url); SMD("Connection OK!"); catch (SQLException e) {SMD("JDBC Connect: "+e.getmessage()); public void disconnect(){ try { conn.close(); catch (SQLException e) {SMD(e.getMessage()); public void Insert(String kod, String nev, String szid, String lak, String iq) { String sqlp = "insert into emp values("+kod+", '"+nev+"', '"+szid+"', '"+lak+"', "+iq+")"; try { s = conn.createstatement(); s.execute(sqlp); SMD("insert OK!"); catch (SQLException e) {SMD("JDBC insert: "+e.getmessage()); public void SMD(String msg){ JOptionPane.showMessageDialog(null, msg, "ABKezelő Üzenet", 2); 104/85

86 Új dolgozó panel kódbűvölés Az ABManager osztály használata a NewEmp panelen: private ABManager abm = new ABManager(); btnbeszur.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { if (!filledtf(kod)) SMD("A kód mező üres!"); else if (!goodint(kod)) SMD("A kód mezőben hibás számadat van!"); else if (!filledtf(nev)) SMD("A név mező üres!"); else if (!filledtf(szid)) SMD("A születési idő mező üres!"); else if (!gooddate(szid)) SMD("A születési idő mezőben hibás dátum van!"); else if (!filledtf(lak)) SMD("A lakóhely mező üres!"); else if (!filledtf(iq)) SMD("Az iq mező üres!"); else if (!goodint(iq)) SMD("Az iq mezőben hibás számadat van!"); else { abm.connect(); abm.insert(rtf(kod), RTF(nev), RTF(szid), RTF(lak), RTF(iq)); abm.disconnect(); ); 104/86

87 104/87

88 Teszt 1. Hány féle JDBC driver típus létezik? Rengeteg, hiszen nagyon sok féle adatbázis létezik 104/88

89 Teszt 2. Melyik interfész nem létezik JDBC-ben? Statement PrepareStatement PreparedStetament CallableStatement 104/89

90 Teszt 3. Mi az azonosító stringje as SQLite jdbc driver-nek? org.sqlite.jdbc JDBC:sqlite JDBC:sqlite.org sqlite.jdbc 104/90

91 Teszt 4. Melyik kódsor helyes? ResultSet rs = stmt.selectquery("select * from "); ResultSet rs = stmt.executeselect ("select * from "); ResultSet rs = stmt.runquery ("select * from "); ResultSet rs = stmt.executequery ("select * from ") 104/91

92 Teszt 5. Milyen sorrendben követik egymást a kifejezések? Kezdje a számozást a kódban a legkorábban előforduló kifejezéssel! STATEMENT CONNECTION RESULTSET DRIVER SQL parancs 104/92

93 Teszt 6. Egészítse ki a kódot! public?1???? LeKapcs(){ if (conn?2????) { try { conn.?3????; d.printf("sikeres lekapcsolódás");?4????(exception?5????) { System.err.println(ex.getMessage()); 104/ void 2.!= null 3. close() 4. catch 5. ex

94 Teszt 7. Melyik metódussal lehet végrehajtani egy SQL select parancsot? execute() executequery() executeupdate() ExecuteCommand() 104/94

95 Teszt 8. A preparestatement() metódus egy SQL kifejezést küld az adatbázisnak. Mi a visszatérő adat (válasz) típusa? ResultSet Integer típusú szám preparestatement objektum PreparedStatement objektum 104/95

96 Teszt 9. Melyik kód helyes? String sql="select * from melos"; Statement st=conn.createstatement(sql); ResultSet rs=st.executequery() String sql="select * from melos"; Statement st=conn.createstatement(); ResultSet rs=st.executequery(sql); String sql="select * from melos"; Statement st=createstatement(sql); ResultSet rs=conn.executequery(st); 104/96

97 Teszt 10. Javítsa ki a kódban a hibákat! public void Select(){ String sqlp = "select id,nev from melos"; String nev="", id=""; try { s = createstatement(); s.executeupdate(sql); s = rs.getresultset(); while(rs.notempty()) { id = s.getnumber("mid"); nev = s.getstring("név"); d.printf(id+"-"+nev); conn.close(); rs.close(); cath(exception e) d.printf(e.geterror()); 104/

98 Teszt 10. Javítsa ki a kódban a hibákat! public void Select(){ String sqlp= "select id,nev from melos"; String nev="", id=""; try { s = createstatement(); s.executeupdate(sql); s = rs.getresultset(); while(rs.notempty()) { id = s.getnumber("mid"); nev = s.getstring("név"); d.printf(id+"-"+nev); conn.close(); rs.close(); cath(exception e) d.printf(e.geterror()); 104/98 public void Select(){ String sqlp= "select id, nev from melos"; String nev="", id=""; try { s = conn.createstatement(); s.executequery(sqlp); rs = s.getresultset(); while(rs.next()) { id = rs.getstring("id"); nev = rs.getstring("nev"); d.printf(id+"-"+nev); rs.close(); s.close(); conn.close(); catch(exception e) d.printf(e.getmessage());

99 Teszt 11. Az ábrán egy JDBC lekérdezés vázlata látható! Adja meg a hiányzó kifejezéseket! DriverManager 2. createstatement 3. ResultSet 104/99

100 Teszt 12. Melyik csomagot kell importálni ahhoz, hogy JDBC-ben dolgozni tudjunk? java.sql.*; java.sqlx.*; java.jdbc.sql.*; java.jdbc.*; Az A és a B csomag is szükséges. 104/100

101 Teszt 13. Igaz vagy hamis? Egy ResutSet-ből a getrow() utasítással egy teljes sornyi adatot ki lehet olvasni egyszerre. Az állítás igaz. Az állítás hamis A PreparedStatement a Statement leszármazottja.. Az állítás igaz. Az állítás hamis 104/101

102 Teszt 14. Melyik állítás helyes a JDBC-vel kapcsolatban? A JDBC egy API különböző típusú adatbázisok elérésére A JDBC jelentése: Java DataBase Connectivity JDBC-vel objektum orientált adatbázisok is elérhetők A JDBC az ODBC java megvalósítása Adatbázisok elérését teszi lehetővé java nyelven A Jdbc egy java osztály neve, erről kapta a technológia a nevét A JDBC támogatja a kapcsolat nélküli adatkezelést 104/102

103 Teszt 15. Az ábrán egy JDBC lekérdezés vázlata látható! Adja meg a hiányzó kifejezéseket! Connection 2. Statement 3. executequery 104/103

104 VÉGE VÉGE 104/104

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

Java Programozás 10. Ea: JDBC. SQLite alapokon Java Programozás 10. Ea: JDBC SQLite alapokon 62/1 B ITv: MAN 2018.02.05 SQLite Az SQLite önálló, fájl alapú, kisméretű, C forrású programkönyvtárként megvalósított ACID-kompatibilis relációs adatbázis-kezelő

Részletesebben

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat

Részletesebben

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész Java Programozás 8. Gy: Java alapok Adatkezelő 4.rész 37/1 B ITv: MAN 2018.04.15 A feladat Feladat: folytassuk a panel életre keltését! - Készítsük el a Módosítás funkciót - A Lista panelt másoljuk le,

Részletesebben

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész Java Programozás 7. Gy: Java alapok Adatkezelő 3.rész 39/1 B ITv: MAN 2018.04.11 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki az Új dolgozó felvitele panelt - A panel a Beszúr

Részletesebben

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,

Részletesebben

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész Java Programozás 5. Gy: Java alapok Adatkezelő 1.rész 27/1 B ITv: MAN 2018.04.13 Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával: 27/2 A

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

B IT MAN 43/1 B IT MAN. Adatbázis Rendszerek II. Ellenőrző kérdések JDBC. v:

B IT MAN 43/1 B IT MAN. Adatbázis Rendszerek II. Ellenőrző kérdések JDBC. v: B IT MAN 43/1 Adatbázis Rendszerek II. Ellenőrző kérdések D JDBC B IT MAN v: 2016.04.10 Ellenőrző kérdések 1. B IT MAN 43/2 1. Mit ír ki az alábbi kód? boolean t = true; boolean f = false; System.out.println(t&&f);

Részletesebben

Adatbázis rendszerek II. V. előadás Előadó: Barabás Péter Dátum: 2008. 10. 16. 1 Java DataBase Connectivity Gazdanyelv: JAVA SQLJ (beágyazott SQL) Kiindulópont: SQL-CLI (X/Open) Hasonló az ODBC-hez nyelvi

Részletesebben

Java Programozás 2. Gy: EmpProgram. Grafikus felületű adatkezelő program

Java Programozás 2. Gy: EmpProgram. Grafikus felületű adatkezelő program Java Programozás 2. Gy: EmpProgram Grafikus felületű adatkezelő program 110/1 B ITv: MAN 2019.04.26 EmpProgram A programosztály A cél: olyan grafikus felületű program elkészítése, mellyel a következő szerkezetű

Részletesebben

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

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL ) Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.

Részletesebben

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

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN B IT v: 2016.02.10 MAN SQL felületek Hatékony: SQL parancsok kiadására Eredmények megtekintésére Nehézkes: Nagyobb volumenű, rutintevékenységek

Részletesebben

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

Java programozási nyelv 11. rész Adatbázis-programozás 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 A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

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

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

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

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma)

Részletesebben

Adatbázisok webalkalmazásokban

Adatbázisok webalkalmazásokban Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql

Részletesebben

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

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk

Részletesebben

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

B I T M A N B I v: T 2014.02.15 M A N Adatbázis Rendszerek II. 7. Ea: MySQL JDBC B I v: T 2014.02.15 M A N 1/87 Témakörök JAVA «-» adatbázis-kezelés JDBC alapok Statement PreparedStatement CallabeStatement Tranzakció kezelés 2/87 A cél: Jávás

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Adatbázis Rendszerek II. 7. Oracle JDBC

Adatbázis Rendszerek II. 7. Oracle JDBC Adatbázis Rendszerek II. 7. Oracle JDBC 117/1 B IT v: 2016.03.31 MAN Témakörök JAVA «-» adatbázis-kezelés JDBC alapok Statement PreparedStatement CallabeStatement Tranzakció kezelés 117/2 A cél: Jávás

Részletesebben

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

B I T M A N B I v: T 2015.03.20 M A N Adatbázis Rendszerek II. 7. Gy: Oracle JDBC B I v: T 2015.03.20 M A N 1/104 Témakörök JAVA «-» adatbázis-kezelés JDBC alapok Statement PreparedStatement CallabeStatement Tranzakció kezelés 2/104 A cél:

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 10. Előadás Ami kimearad múlthéten Ha már megvan a KeyListener vagy MouseListener osztályunk a következõ módon tudjuk hozzárendelni egy JFrame vagy JPanel-hez: Ami

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

Részletesebben

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

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit): Oracle adatbázis elérése A gyakorlat célja az, hogy a hallgató tapasztalatot szerezzen egy szerver oldali adatbázis kezelő rendszer elérésében, gyakorolja a vizuális eszközök és a kapcsolat nélküli (Disconnected

Részletesebben

Java Programozás 3. Gy: Java GUI. Swing, AWT

Java Programozás 3. Gy: Java GUI. Swing, AWT Java Programozás 3. Gy: Java GUI Swing, AWT 35/1 B ITv: MAN 2018.02.25 Feladat Készítsük el az Emp osztály kezelő programját úgy, hogy ArrayList-et (listatömb, tömblista, rugalmas tömb) használunk. A java.util.arraylist

Részletesebben

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

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra

Részletesebben

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

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában? Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A

Részletesebben

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs

Részletesebben

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi

Részletesebben

JAVA PROGRAMOZÁS 8.ELŐADÁS

JAVA PROGRAMOZÁS 8.ELŐADÁ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ű

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

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

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

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

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 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS 2015-2016 Adatbázis alapú alkalmazások készítése PHP-ben Adatbázis alapú alkalmazás 2 A leggyakrabban használt dinamikus alkalmazások

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

Java Database Connectivity (JDBC)

Java Database Connectivity (JDBC) Java adatbázisok elérése Java Database Connectivity (JDBC) JDBC Call Level Interface (CLI): standard, ami definiálja, hogy egy program hogyan kommunikálhat egy adatbázis management rendszerrel (DBMS).

Részletesebben

Swing GUI készítése NetBeans IDE segítségével

Swing GUI készítése NetBeans IDE segítségével Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az

Részletesebben

MDAC - Microsoft Data Access Components

MDAC - Microsoft Data Access Components MDAC - Microsoft Data Access Components 1 ODBC Open DataBase Connectivity ODBC software API adatbáziskezeléshez. Nyelvfüggetlen, Adatbázisfüggetlen Operációsrendszer-független Standard adathozzáférés SQL

Részletesebben

Vizuális programozás gyakorlat

Vizuális programozás gyakorlat Vizuális programozás gyakorlat A gyakorlat célja az entitás modell készítésének és az MS SQLEXPRESS használatának gyakorlása. A gyakorlat során egy könyvtári szoftver adatmodelljét tervezzük meg, valamint

Részletesebben

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

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 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 Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:

Részletesebben

PHP-MySQL. Adatbázisok gyakorlat

PHP-MySQL. Adatbázisok gyakorlat PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen

Részletesebben

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

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 8] Karácsonyi Rezsô: Mechanika I. Középiskolai Tk., Nemzeti Tankönyvkiadó, Bp. 1995. 9] Paál Tamás: Mechanika II. Középiskolai Tk., Nemzeti Tankönyvkiadó, Bp. 1996. 10] Tomcsányi Péter (alk. szerk.): Fizika

Részletesebben

JavaServer Pages (JSP) (folytatás)

JavaServer Pages (JSP) (folytatás) JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek

Részletesebben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2 Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3

Részletesebben

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis Rendszerek II. 8. Gyakorló környezet Adatbázis Rendszerek II. 8. Gyakorló környezet 1/24 B IT v: 2017.10.26 MAN Gyakorló környezet Géptermek 193.6.5.58:8080/apex H16_neptunkód ADMIN neptunkód 2/24 Jelszó váltás 1 2 3 4 3/24 Gyakorló környezet

Részletesebben

Adatbázis Rendszerek II. 2. Gyakorló környezet

Adatbázis Rendszerek II. 2. Gyakorló környezet Adatbázis Rendszerek II. 2. Gyakorló környezet 37/1 B IT v: 2017.02.11 MAN Gyakorló környezet Géptermek 37/2 Jelszó váltás 1 2 3 4 37/3 Gyakorló környezet II. apex.oracle.com/en/ 37/4 A regisztrációs folyamat

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása DBMS spektrum Excel ODBC-ADO API Tevékenységpontok: - DBMS telepítés - ODBC driver telepítése - DSN létrehozatala -Excel-ben ADO bevonása - ADOConnection objektum létrehozatala - Open: kapcsolat felvétel

Részletesebben

JDBC Adatbáziskapcsolat objektumok SQL parancsok küldése Kötegelt módosítások ResultSet Tranzakciók

JDBC Adatbáziskapcsolat objektumok SQL parancsok küldése Kötegelt módosítások ResultSet Tranzakciók JDBC adatbázis-hozzáférés java-ban JDBC JDBC API: Java nyelven íródott osztályokat és interfészeket tartalmazó csomagok, melyek egy standard API-t biztosítanak adatbázis-keretrendszerek, valamint adatbázis

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

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.

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. OO PDO PDO VS MYSQLi VS MYSQL ================================================================================ A PHP mysql metódusai elavultak, helyette lehet hazsnálni a MYSQLi metódusokat, amelyek szinte

Részletesebben

Entity Framework alapú adatbáziselérés

Entity Framework alapú adatbáziselérés Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben.

Részletesebben

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik

Részletesebben

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők

Részletesebben

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,

Részletesebben

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

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,

Részletesebben

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

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül Adatbázis elérés lehetőségei absztrakciós rétegen keresztül: - Open DataBase Connectivity (ODBC), közös függvényhalmaz,

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Grafikus felhasználói felület Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt,,heavy weight"

Részletesebben

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

Témák. JDBC Adatbázisok JDBC használatának lépései Tranzakciók Adatbázis tervezés EK diagram Adatbázis-kezelés Témák JDBC Adatbázisok JDBC használatának lépései Tranzakciók Adatbázis tervezés EK diagram A JDBC... Java API szabvány relációs adatbázisok használatához Java SE része Felhasználása

Részletesebben

Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz

Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz PHP Adatbázis Tartalomjegyzék PHP ADATBÁZIS...1 TARTALOMJEGYZÉK...1 EDDIG VOLT...1 MAI ANYAG...1 TEHÁT RÉSZLETESEBBEN...1 Kapcsolódás web-alkalmazásokból adatbázisokhoz...1 Biztonsági kérdések...2 PHP...2

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Kliens oldali SQL-API

Kliens oldali SQL-API Adatbázis rendszerek I mysql SQL program API ME- GEIAL Dr. Kovács Lászl szló Üzleti logika elhelyezése adatbázis Kliens üzleti logika Nagy hálózati forgalom Decentralizált lt karbantartás Lassabb végrehajt

Részletesebben

Adatbázis-kezelés ODBC driverrel

Adatbázis-kezelés ODBC driverrel ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1 SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása

Részletesebben

Database Systems II. ZH összefoglaló

Database Systems II. ZH összefoglaló Database Systems II. ZH összefoglaló 1) Kód az adatbázisban tárolva PSM CREATE PROCEDURE name(parameters) local declarations body PL/SQL CREATE (OR REPLACE) PROCEDURE name(parameters) local declarations

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Kapcsolat objektumok. Válasz feldolgozása Tranzakciók DAO tervezési minta

Kapcsolat objektumok. Válasz feldolgozása Tranzakciók DAO tervezési minta JDBC adatbázis-hozzáférés Java-ból Áttekintés Bevezetés Kapcsolat objektumok SQL parancs küldés Válasz feldolgozása Tranzakciók DAO tervezési minta JDBC JDBC API: Java osztályokat és interfészeket tartalmazó

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

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

B I T M A N B I v: T 2015.03.01 M A N Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Adatbáziskezelés (JDBC) Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Témák JDBC Adatbázisok JDBC használatának lépései Tranzakciók Adatbázis tervezés EK diagram A JDBC... Java

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,

Részletesebben

JDBC Adatbáziskapcsolat objektumok SQL parancsok küldése Kötegelt módosítások ResultSet Tranzakciók DAO tervezési minta 1 / 45

JDBC Adatbáziskapcsolat objektumok SQL parancsok küldése Kötegelt módosítások ResultSet Tranzakciók DAO tervezési minta 1 / 45 JDBC adatbázis-hozzáférés Java-ból 1 / 45 Áttekintés Bevezetés Kapcsolat objektumok SQL parancs küldés Válasz feldolgozása Tranzakciók DAO tervezési minta 2 / 45 Áttekintés Bevezetés Kapcsolat objektumok

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Felhasználói leírás a DimNAV Server segédprogramhoz ( ) Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások

Részletesebben

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS ANDROID ALKALMAZÁSFEJLESZTÉS Adattárolás SharedPreference Belső - külső tároló PreferenceActivity Felhő alapú tárolás SQLite sicz.mj[tekercs]gmail.com Sicz-Mesziár János 2013. július 3. Shared Preference

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

JDBC. A JDBC alkalmazása

JDBC. A JDBC alkalmazása Áttekintés JDBC adatbázis-hozzáférés Java-ból Bevezetés Kapcsolat objektumok SQL parancs küldés Válasz feldolgozása Tranzakciók DAO tervezési minta 1 / 40 2 / 40 JDBC JDBC API: Java osztályokat és interfészeket

Részletesebben

Az SQL*Plus használata

Az SQL*Plus használata Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus

Részletesebben

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai 8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló

Részletesebben

A Java nyelv. Dialógus ablakok. Elek Tibor

A Java nyelv. Dialógus ablakok. Elek Tibor A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,

Részletesebben

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014. BaBér Bérügyviteli rendszer Telepítési segédlet 2014. Tartalom 1. Ajánlott konfiguráció... 3 2. A BaBér és az SQL2005 szerver telepítése... 5 3. A BaBér program és az SQL2005-ös adatbázis kezelő telepítése...

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió A QGIS programból számos téradatbázis adatait elérhetjük, ezek közül két nyílt forráskódúval foglalkozunk, a PostGIS és a SpatiaLite adatbázis

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis kezelés Delphiben. SQL lekérdezések Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja

Részletesebben

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal. Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása

Részletesebben

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

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Kalmár György Adatbázis alapú rendszerek

Kalmár György Adatbázis alapú rendszerek Kalmár György Adatbázis alapú rendszerek Oracle-ben az SQL utasítások feldolgozásához szükség van egy ún. kontextus memóriára, amely az összes lényeges információt tárolja egy utasítás végrehajtásához.

Részletesebben