Java Database Connectivity with JDBC
|
|
- Miroslava Eva Lišková
- před 8 lety
- Počet zobrazení:
Transkript
1 Java Database Connectivity with JDBC Obsah 1 Úvod 2 Relační-databázový model 3 Relační databaze přehled: databáze knih 4 SQL 4.1 Základní SELECT Query 4.2 klauzule WHERE 4.3 klauzule ORDER BY 4.4 Výběr dat (Merging Data) z více tabulek: INNER JOIN 4.5 příkaz INSERT 4.6 příkaz UPDATE 4.7 příkaz DELETE 5 Práce s databází pomocí JDBC 5.1 Připojení a dotazy v databázi 5.2 Dotazy v databázi (knihy) books 6 Uložené procedury 7 Objektově relační mapování 1
2 1 Úvod 2 Databáze Kolekce dat DBMS Systém řízení databáze (Database management system) Ukládá a řídí data SQL Relational database Structured Query Language (strukturovaný dotazovací jazyk)
3 1 Úvod 3 RDBMS Relational database management system Cloudscape JDBC Java Database Connectivity JDBC driver
4 2 Relační databázový model 4 Relační databáze Tabulka Řádky, sloupce Primární klíč jedinečná data SQL příkaz dotaz (query)
5 2 Relační databázový model 5 Number Name Department Salary Location Jones New Jersey Kerwin New Jersey Row Larson Los Angeles Myers Orlando Neumann New Jersey Stephens Orlando Primary key Column Obr. 1 Tabulka Employee vzorek dat
6 2 Relační databázový model 6 Department Location 413 New Jersey 611 Orlando 642 Los Angeles Obr. 2 Výsledek vyběru rozdílných Department a Location z tabulky Employee.
7 3 Relační databáze přehled: databáze books 7 Vzorek databáze books Čtyři tabulky authors, publishers, authorisbn a titles Relace (vztahy) mezi tabulkami
8 3 Relační databáze přehled: databáze books 8 Sloupec Popis authorid AuthorID je číselna identifikace autora v databázi. V databázi books je to celé číslo, které je definované jako autoinkrementovatelné. Tím je dosaženo jedinečnosti tohoto čísla. Sloupec představuje primární klíč. firstname Jméno autora (string). lastname Přijmení autora ( string). Obr. 3 tabulka authors databáze books. authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry Obr. 4 Vzorek dat z tabulky authors.
9 3 Relační databáze přehled: databáze books 9 Sloupec Popis publisherid PublisherID je celé autoinkrementovatelné číslo v databázi books. Sloupec je využit jako primární klíč. publishername Jméno nakladatele ( string). Obr. 5 publishers tabulka z databáze books. publisherid publishername 1 Prentice Hall 2 Prentice Hall PTG Obr. 6 Data z tabulky publishers.
10 3 Relační databáze přehled: databáze books 10 Sloupec Popis isbn ISBN knihy ( string). Primární klíč v tabulce. title Název knihy ( string). editionnumber Ediční číslo knihy ( integer). copyright Copyright rok knihy ( string). publisherid Číslo publisherid ( integer). Cizí klíč k tabulce publishers. imagefile Jméno souboru obsahujícího obrázek titulní strany knihy (string). price Doporučená cena knihy ( real number). Obr. 7 tabulka titles z databáze books.
11 3 Relační databáze přehled: databáze books 11 isbn title edition- Number right imagefile price erid C How to chtp3.jpg Program C++ How to cpphtp4.jpg Program Java Web jwsfep1.jpg Services for Experienced Programmers Java How to jhtp5.jpg Program The Complete javactc5.jpg Java 2 Training Course Advanced Java advjhtp1.jpg Platform How to Program Obr. 8 Vzorek dat z tabulky titles databáze books.
12 3 Relační databáze přehled: databáze books 12 Sloupec Popis authorid AuthorID je číslo, cizí klíč k tabulce authors. isbn ISBN knihy je cizí klíč k tabulce titles.. Obr. 9 tabulka authorisbn databáze books. authorid isbn authorid isbn Obr. 10 Vzorek dat z tabulky authorisbn databáze books.
13 81 3 Relační databáze přehled: databáze books 13 authors authorid authorisbn authorid 1 titles isbn firstname lastname isbn publishers publisherid 18 8 title editionnumber copyright publisherid imagefile publishername price Obr. 11 Tabulka relací v databázi books.
14 4 SQL 14 SQL přehled SQL klíčová slova SQL klíčová slova Popis SELECT Dodá data z jedné nebo více tabulek. FROM Specifikuje tabulky zahrnuté do dotazu. Vyžaduje SELECT. WHERE Kritéria pro výběr který určí, kteréřádky mají být dodány zpět, rušeny nebo aktualizovány. GROUP BY Kritéria pro seskupovánířádků. ORDER BY CKritéria pro řazenířádků. INNER JOIN Výběr řádků z více tabulek. INSERT Vlořenířádků do dané tabulky. UPDATE Aktualizace řádků v dané tabulce. DELETE Rušenířádků z dané tabulky. Obr. 12 SQL klíčová slova dotazů.
15 4.1 Základní SELECT Query 15 Nejjednodušší forma SELECT query SELECT * FROM jménotabulky SELECT * FROM authors Vybere specifikované položky z tabulky SELECT authorid, lastname FROM authors authorid lastname 1 Deitel 2 Deitel 3 Nieto 4 Santry Obr. 13 Vzorek authorid a lastname data z authors tabulky.
16 4.2 Klauzule WHERE 16 určuje kritéria výběru SELECT jménosloupce1, jménosloupce2, FROM jménotabulky WHERE kritéria SELECT title, editionnumber, copyright FROM titles WHERE copyright > 2000 klauzule WHERE podmínkové operátory <, >, <=, >=, =, <> LIKE znaky wildcard % a _
17 4.2 Klauzule WHERE 17 title editionnumber copyright C How to Program C++ How to Program The Complete C++ Training Course Internet and World Wide Web How to Program Java How to Program XML How to Program Perl How to Program Advanced Java 2 Platform How to Program Obr. 14 Vzorek názvů s copyrights po roce after 2000 z tabulky titles.
18 4.2 Klauzule WHERE 18 SELECT authorid, firstname, lastname FROM authors WHERE lastname LIKE D% authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel Obr. 15 Autoři jejichž přijmení začíná D z tabulky authors.
19 4.2 Klauzule WHERE 19 SELECT authorid, firstname, lastname FROM authors WHERE lastname LIKE _i% authorid firstname lastname 3 Tem Nieto Obr. 16 Jediný autor z tabulku authors jehož přijmení obsahuje i jako druhé písmeno.
20 4.3 Klauzule ORDER BY 20 Volitelná klauzule ORDER BY SELECT jménosloupce1, jménosloupce2, FROM jménotabulky ORDER BY sloupec ASC SELECT jménosloupce1, jménosloupce2, FROM jménotabulky ORDER BY sloupec DESC ORDER BY více položek ORDER BY column1 sortingorder, column2 sortingorder, Kombinace klauzulí WHERE a ORDER BY
21 4.3 Klauzule ORDER BY 21 SELECT authorid, firstname, lastname FROM authors ORDER BY lastname ASC authorid firstname lastname 2 Paul Deitel 1 Harvey Deitel 3 Tem Nieto 4 Sean Santry Obr. 17 Vzorek dat z tabulky authors v vzestupném pořadí podle lastname.
22 4.3 Klauzule ORDER BY 22 SELECT authorid, firstname, lastname FROM authors ORDER BY lastname DESC authorid firstname lastname 4 Sean Santry 3 Tem Nieto 2 Paul Deitel 1 Harvey Deitel Obr.18 Vzorek dat z tabulky authors v sestupném pořadí podle lastname.
23 4.3 Klauzule ORDER BY 23 SELECT authorid, firstname, lastname FROM authors ORDER BY lastname, firstname authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry Obr. 19 Vzorek dat tabulky authors v vzestupném pořadí podle lastname a podle firstname.
24 4.3 Klauzule ORDER BY 24 SELECT isbn, title, editionnumber, copyright, price FROM titles WHERE title LIKE %How to Program ORDER BY title ASC isbn title edition- copyright price Number Advanced Java 2 Platform How to Program C How to Program C++ How to Program Internet and World Wide Web How to Program Perl How to Program Visual Basic 6 How to Program XML How to Program x e-business and e-commerce How to Program Obr. 20 Vzorek knih z tabulky titles, jejíž názvy končí s textem How to Program v vzestupném pořadí řazeném. podle názvů (titulů)
25 4.4 Výběr dat z více tabulek Merging Data from Multiple Tables: Joining 25 Rozdělit příbuzná data do oddělených tabulek Spojit tabulky Vybrat data z více tabulek do jednoho pohledu (přehledu) INNER JOIN SELECT sloupecjméno1, sloupecjméno2, FROM tabulka1 INNER JOIN tabulka2 ON tabulka1.sloupecjméno = table2.sloupecjméno2 SELECT firstname, lastname, isbn FROM authors, authorisbn INNER JOIN authorisbn ON authors.authorid = authorisbn.authorid ORDER BY lastname, firstname
26 4.4 Výběr dat z více tabulek Merging Data from Multiple Tables: Joining 26 firstname lastname isbn firstname lastname isbn Harvey Deitel Paul Deitel Harvey Deitel Paul Deitel Harvey Deitel Paul Deitel Harvey Deitel Paul Deitel Harvey Deitel Paul Deitel Harvey Deitel Paul Deitel Harvey Deitel Tem Nieto Harvey Deitel Tem Nieto x Paul Deitel Sean Santry Obr. 21 Vzorek authors a ISBN pro knihy, které autoři napsali, autoři sjou uvedeni ve vzestupném pořadí podle lastname a firstname.
27 4.5 Příkaz INSERT 27 Vkládářádek do tabulky INSERT INTO tablename ( columnname1,, columnnamen ) VALUES ( value1,, valuen ) INSERT INTO authors ( firstname, lastname ) authorid VALUES firstname ( Sue, Smith lastname ) 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry 5 Sue Smith Obr. 22 Vzorek dat z tabulky Authors po operaci INSERT.
28 4.6 Příkaz UPDATE 28 Modifikuje data v tabulce UPDATE tablename SET columnname1 = value1,, columnnamen = valuen WHERE criteria UPDATE authors SET lastname = Jones WHERE lastname = Smith AND firstname = Sue authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry 5 Sue Jones Obr. 23 Vzorek dat tabulky authors po operaci update.
29 4.7 Příkaz DELETE 29 Odstranění dat z tabulky DELETE FROM tablename WHERE criteria DELETE FROM authors WHERE lastname = Jones AND firstname = Sue authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry Obr. 24 Vzorek dat z tabulky authors po operaci DELETE.
30 5 Práce s databází pomocí rozhraní JDBC 30 Navázání spojení s databází Zaslání dotazů a příkazů pro aktualizaci databázi Zobrazení výsledků dotazu
31 Connection con = DriverManager.getConnection ( jdbc:mydriver:wombat jdbc:mydriver:wombat, mylogin mylogin, mypassword mypassword ); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( SELECT a, b, c FROM Table1 ); while(rs.next()) ()) { int x = rs.getint( a ); String s = rs.getstring( b ); float f = rs.getfloat( c ); } Osnova Fragment kódu - názorný příklad uvedených kroků
32 Fragment kódu 32 vytváří instanci (objekt) od třídy DriverManager pro připojení ke driveru databáze a logování do databáze vytváří instanci od třídy Statement, která provádí zadaný dotaz SQL v databázi vytváří instanci od třídy ResultSet, která získá zpět výsledky dotazu a zobrazí je
33 5. Ovladače JDBC 33 Nejdůležitější součástí balíčku java.sql je kolekce jeho rozhraní tato rozhraní definují způsob, jakým aplikace s relačními DB komunikují jedním z rozhraní je i rozhraní Driver obsahuje metodu pro databázové připojení ovladač JDBC souhrnné označení skupiny souvisejících souborů, které poskytují přístup k DBMS (obsahují nejen implementaci rozhraní java.sql, ale i podpůrné třídy napojení na DB)
34 Typy ovladačů 1. Připojení prostřednictvím zdroje dat ODBC 34 Ovladač přemostění JDBC/ODBC (Open Database Connectivity od Microsoft) JDBC-ODBC bridge driver ODBC součást systému Windows nastavení ovládací panely, nástroje pro správu, datové zdroje ODBC není příliš robustní dostatečný pro provádění testů a jednoduchých aplikací Nevýhoda nutnost instalace ovladačů ODBC na klientském počítači (ve Windows není problém, v jiných platformách ano)
35 Typy ovladačů 2. Připojení prostřednictvím kódu nativního klienta pro přístup k síti Většina DB systémů poskytuje klientské rozhraní umožňující uživatelům komunikovat s DB serverem Ovladač JDBC 2. typy obsahuje jednak kód v jazyce Java, jednak nativní kód a komunikuje s klientským softwarem příslušného DB systému. Nabízí lepší výkon než ovladače typu 1, ale může ztížit distribuci aplikace na cílovém počítači musí být nainstalován rovněž klientský síťový software daného systému (Oracle) 35
36 Typy ovladačů 3. Připojení prostřednictvím vrstvy aplikačního serveru Tento typ ovladače napsán kompletně v Javě odesílá databázové požadavky serverové komponentě za přenos databázových požadavků do formátu vhodného pro daný databázový systém odpovědna serverová komponenta nevýhoda nutnost existence serverové komponenty výhoda možnost změny DB serveru bez ovlivnění funkcí klientského kódu 36
37 Typy ovladačů 4. Přímé připojení k databázovému systému 37 Ovladač napsán celý v jazyce Java komunikuje přímo s DB serverem a komu používá protokol určený právě pro tento typ serveru ve stejném balíčku vaše aplikace a ovladač nevyžaduje žádný další klientský ani serverový software
38 5.1 Připojení a tvorba dotazů v databázi 38 Zobrazení autorů (DisplayAuthors) Získání celé tabulky authors Zobrazení dat v JTextArea
39 // zobrazi obsah tabulky authors package paket1; import java.sql.connection; import java.sql.statement; import java.sql.drivermanager; import java.sql.resultset; import java.sql.resultsetmetadata; import java.sql.sqlexception; Osnova public class DisplayAuthors { // JDBC jmeno driveru a URL databaze static final String JDBC_DRIVER = "com.mysql.jdbc.driver " com.mysql.jdbc.driver"; static final String DATABASE_URL = "jdbc:mysql://localhost/books " jdbc:mysql://localhost/books"; // spusteni aplikace public static void main( String args[] ) { Connection connection = null; Statement statement = null; // pripojeni do databaze books a dotazovani databaze try { Class.forName( JDBC_DRIVER ); // načten tení ovladače databaze mysql
40 // vytvoreni pripojeni k databazi connection = DriverManager.getConnection( ( DATABASE_URL, "jhtp6", "jhtp6" ); Osnova // vytvoreni instance Statement pro dotazovani v databazi statement = connection.createstatement(); // databazove dotazy ResultSet resultset = statement.executequery( "SELECT authorid, firstname, lastname FROM authors" ); // zpracovani vysledku dotazu ResultSetMetaData metadata = resultset.getmetadata(); int numberofcolumns = metadata.getcolumncount(); System.out.println( "Authors Table of Books Database:" ); for ( int i = 1; i <= numberofcolumns; i++ ) System.out.printf( "%-8s 8s\t", metadata.getcolumnname( i ) ); System.out.println(); while ( resultset.next() ) { for ( int i = 1; i <= numberofcolumns; i++ ) System.out.printf( "%-8s 8s\t", resultset.getobject( i ) ); System.out.println(); } // end while } // end try
41 catch ( SQLException sqlexception ) { sqlexception.printstacktrace(); System.exit( 1 ); } // end catch catch ( ClassNotFoundException classnotfound ) { classnotfound.printstacktrace(); System.exit( 1 ); } // end catch finally // test, zda statement a connection jsou spravne uzavreni { try { statement.close(); connection.close(); } // end try catch ( Exception exception ) { exception.printstacktrace(); System.exit( 1 ); } // end catch } // end finally } // end main } // end class DisplayAuthors Osnova
42 Authors Table of Books Database: authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Sean Santry Osnova
43 Navázání spojení s databází 43 k navázání spojení s databází se používá rozhraní Driver metody tohoto rozhraní se nepoužívají přímo, ale prostřednictvím statické třídy DriverManager a její statické metody getconnection() ta vrací objekt typu Connection metoda getconnection() předává argumenty všem registrovaným ovladačům, dokud nenajde ten, jehož prostřednictvím se mu podaří navázat spojení s uvedenými argumenty
44 Navázání spojení s databází 44 ovladač není explicitně registrovaný ovladač se vytvoří explicitně vytvořením jehi instance: Class.forName( JDBC_DRIVER);
45 Formáty adres URL ovladačů JDBC 45 metoda getconnection() má tři varianty (podle zadaných argumentů) 1. adresa URL ovladače ODBC 2. ID uživatele pro darabázi 3. heslo pro databázi adresa URL specifikuje databázi hodnota typu String identifikující konkrétní ovladač JDBC a databázi tvar: jdbc:<podprotokol>:<podnázev>
46 Formáty adres URL ovladačů JDBC 46 hodnoty <podprotokol> a <podnázev> jsou závislé na databázi a použitém ovladači "jdbc:mysql://localhost/books"; navázání spojení: connection = DriverManager.getConnection( DATABASE_URL, "jhtp6", "jhtp6" );
47 Rozhraní DatabaseMetaData 47 definované metody umožňují zjistit: možnosti DB systému a příslušného ovladače, popis obsahu databáze (seznam schémat DB, seznam tabulek, seznam sloupců v jednotlivých tabulkách, datový typ sloupců
48 Struktura metod rozhraní DatabaseMetaData metody sloužící k popisu funkcí a vlastností BD systému vrací většinou boolean, int String supportouterjoins(), getmaxconnections() 2. metody popisující obsah DB vrací objekt typu ResultSet (rozhraní) getschemas(), gettables()
49 Třída Statement 49 po připojení k DB objekt typu Statement umožňuje vykonávat příkazy jazyka SQL instanci třídy Statement se vytvoří metodou createstatement() metody: executequery(a String); executeupdate(a String); execute(a String);
50 Třída ResultSet 50 instance této třídy mohou být výsledkem spuštění metody executequery(), nebo execute() vrací více instancí třídy ResultSet vrácená data je možné zpracovat po řádcích, záznamech aktuální záznam current row / current record po vytvoření instance ResutlSet její kurzor nastaven na 1. záznam (objekt) objekty ResultSet většinou zůstávají v databázovém serveru, pouze aktuální záznam je přenesen
51 Práce s objektem ResultSet 51 Navigace mezi záznamy: next() vrací boolean, zda existuje další záznam Načítání dat: getxxx() načítání dat z aktuálního záznamu pro každý typ (třídu) existuje speciální metoda getobject() každá getxxx() obsahuje dvě implementace: celočíselný argument index sloupce String argument název sloupce Úprava dat: metody prefix updatexxx()
52 Rozhraní ResultSetMetaData 52 použití k dalšímu získání informací o databázi ve výsledku dotazu popis jednotlivých sloupců název sloupců typ dat sloupců počet sloupců
53 Zobrazení autorů 53 Aplikace musí nahrát DB driver před připojením k databázi 25ř. statická metoda forname - nahrávání třídy DB ovladače je nutné přidat mysql-connector-java production-bin.jar do adresáře: C:\mysql-connertor-java production java classpath c:\mysql-connector-java production\mysql-connector-java productionbin.jar;.displayauthors
54 5.2 Dotazování (Querying) v databázi books 54 Dovoluje uživateli v programu zadat libovolný dotaz Zobrazí výsledky dotazu v JTable
55 // TableModel, ktery dodava ResultSet data do JTable. package paket2; import java.sql.connection; import java.sql.statement; import java.sql.drivermanager; import java.sql.resultset; import java.sql.resultsetmetadata; import java.sql.sqlexception; import javax.swing.table.abstracttablemodel; Osnova // Radky a sloupce ResultSet jsou cislovany od 1 a radky a // sloupce JTable jsou cislovany od 0. Pri zpracovani radku nebo // sloupcu ResultSet pro pouziti v JTable, je nutne // pricist 1 k cislu radku nebo sloupce k tomu, aby se s radky a sloupci // ResultSet spravne manipulovalo (napr napr. sloupec 0 JTable je // sloupec 1 ResultSet a radek 0 JTable je radek 1 ResultSet). public class ResultSetTableModel extends AbstractTableModel { private Connection connection; private Statement statement; private ResultSet resultset; private ResultSetMetaData metadata; private int numberofrows; // sledovani statusu pripojeni databaze private boolean connectedtodatabase = false;
56 // konstruktor inicializuje resultset a ziska jeho meta data object; // k urceni poctu radku public ResultSetTableModel( String driver, String url, String username, String password, String query ) throws SQLException, ClassNotFoundException { // nahrani tridy databazoveho driveru Class.forName( driver ); Osnova // pripojeni k databazi connection = DriverManager.getConnection( url, username, password ); // vytvoreni Statement k dotazum v databazi statement = connection.createstatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); // aktualizace statusu pripojeni databaze connectedtodatabase = true; // nastaveni dotazu a jeho provedeni setquery( query ); } // end constructor ResultSetTableModel
57 // ziskani tridy, ktera predstavuje typ sloupce public Class getcolumnclass( int column ) throws IllegalStateException { // zjisteni, zda je pripojeni k DB platne if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); Osnova // urceni tridy sloupce try { String classname = metadata.getcolumnclassname( ( column + 1 ); // vraceni objektu tridy, ktera predstavuje classname return Class.forName( classname ); } // end try catch ( Exception exception ) { exception.printstacktrace(); } // end catch return Object.class; } // end method getcolumnclass
58 // ziskani tridy, ktera predstavuje typ sloupce public Class getcolumnclass( int column ) throws IllegalStateException { // zjisteni, zda je pripojeni k DB platne if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); Osnova // urceni tridy sloupce try { String classname = metadata.getcolumnclassname( ( column + 1 ); // vraceni objektu tridy, ktera predstavuje classname return Class.forName( classname ); } // end try catch ( Exception exception ) { exception.printstacktrace(); } // end catch return Object.class; } // end method getcolumnclass
59 // ziskani jmena konkretniho sloupce v ResultSet public String getcolumnname( int column ) throws IllegalStateException { // zjisteni, zda je DB dostupna if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); Osnova // urceni jmena sloupce try { return metadata.getcolumnname( column + 1 ); } // end try catch ( SQLException sqlexception ) { sqlexception.printstacktrace(); } // end catch return ""; // pri problemech vraci prazdny retezec misto jmena //sloupce } // end method getcolumnname
60 // vraci pocet radku v ResultSet public int getrowcount() throws IllegalStateException { // zjisteni, zda je DB pripojena if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); Osnova return numberofrows; } // end method getrowcount // ziskani hodnoty z konkretniho radku a sloupce public Object getvalueat( int row, int column ) throws IllegalStateException { // zjisteni, zda je DB dostupna if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); // ziskani hodnoty v konkretnim radku a sloupci v ResultSet try { resultset.absolute( row + 1 ); return resultset.getobject( column + 1 ); } // end try
61 catch ( SQLException sqlexception ) { sqlexception.printstacktrace(); } // end catch Osnova return ""; // pri problemech vraci prazdny retezec } // end method getvalueat // nastaveni noveho retezce databazoveho dotazu public void setquery( String query ) throws SQLException, IllegalStateException { // zjisteni, zda je DB dostupna if (!connectedtodatabase! ) throw new IllegalStateException( "Not Connected to Database" ); // specifikace dotazu a jeho vykonani resultset = statement.executequery( query ); // ziskani meta dat z ResultSet metadata = resultset.getmetadata(); // urceni poctu radku v ResultSet resultset.last(); // presun na posledni radek numberofrows = resultset.getrow(); // ziskani cisla radku
62 // uvedomeni JTable, ze se model zmenil firetablestructurechanged(); } // end method setquery Osnova // uzavreni Statement a Connection public void disconnectfromdatabase() { if (!connectedtodatabase! ) return; try { statement.close(); connection.close(); } // end try catch ( SQLException sqlexception ) { sqlexception.printstacktrace(); } // end catch finally // update database connection status { connectedtodatabase = false; } // end finally } // end method disconnectfromdatabase } // end class ResultSetTableModel
63 Třída ResultSet - pokračování 63 jednosměrná nebo obousměrná sada záznamů forward-only-recordset scrollable recordset vlastnosti třídy uvedeny v tabulkách
64 5.2 Dotazování v databázi books 64 Statický typ konstanty ResultSet TYPE_FORWARD_ONLY TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_SENSITIVE Obr. 28 Popis Specifikuje, že kurzor ResultSet se může posunout pouze směrem dopředu (např. Od mprvního řádku k poslednímu řádku v ResultSet). Specifikuje, že kurzor ResultSet může rolovat v libovolném směru a že změny vytvořené v ResultSet během zpracování ResultSet nejsou reflektovány v ResultSet do doby než se program opět dotáže databáze. Specifikuje, že kurzor ResultSet může rolovat v libovolném směru a že změny udělané v ResultSet během zpracování ResultSet jsou okamžitě reflektovány v ResultSet. Konstanty ResultSet pro specifikaci typu ResultSet.
65 5.2 Dotazování v databázi books 65 Statické Popis concurrency constant ResultSet CONCUR_READ_ONLY Specifikuje, že ResultSet nemůže být aktualizován (např. Změny v obsahu ResultSet nemohou být reflektovány v databázi s ResultSet update methodami). CONCUR_UPDATABLE Specifikuje, že ResultSet může být aktualizován (např. Změny v obsahu ResultSet mohou být reflektovány v databázi s ResultSet update methodami). Obr. 29 Konstanty ResultSet pro specifikaci vlastností result.
66 // zobrazi obsah tabulky Authors v databazi Books package paket2; import java.awt.borderlayout; import java.awt.event.actionlistener; import java.awt.event.actionevent; import java.awt.event.windowadapter; import java.awt.event.windowevent; import java.sql.sqlexception; import javax.swing.jframe; import javax.swing.jtextarea; import javax.swing.jscrollpane; import javax.swing.scrollpaneconstants; import javax.swing.jtable; import javax.swing.joptionpane; import javax.swing.jbutton; import javax.swing.box; Osnova public class DisplayQueryResults extends JFrame { // JDBC driver, database URL, username and password static final String JDBC_DRIVER = "com.mysql.jdbc.driver " com.mysql.jdbc.driver"; static final String DATABASE_URL = "jdbc:mysql://localhost/books " jdbc:mysql://localhost/books"; static final String USERNAME= "jhtp6"; static final String PASSWORD= "jhtp6";
67 // standardni dotaz - ziska vsechna data z tabulky authors static final String DEFAULT_QUERY = "SELECT * FROM authors"; Osnova private ResultSetTableModel tablemodel; private JTextArea queryarea; // vytvoreni ResultSetTableModel a GUI public DisplayQueryResults() { super( "Displaying Query Results" ); // vytvoreni ResultSetTableModel a zobrazi tabulku databaze try { // vytvoreni TableModel pro vysledky dotazu SELECT * FROM authors tablemodel = new ResultSetTableModel( JDBC_DRIVER, DATABASE_URL, USERNAME, PASSWORD, DEFAULT_QUERY ); // nastaveni JTextArea ve ktere uzivatel zapise dotazy queryarea = new JTextArea( DEFAULT_QUERY, 3, 100 ); queryarea.setwrapstyleword( ( true ); queryarea.setlinewrap( true );
68 JScrollPane scrollpane = new JScrollPane( queryarea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER ); Osnova // nastaveni JButton pro odeslani (submitting) dotazu JButton submitbutton = new JButton( "Submit Query" ); // vytvoreni Box k umisteni queryarea a // submitbutton do GUI Box box = Box.createHorizontalBox(); box.add( scrollpane ); box.add( submitbutton ); // vytvoreni JTable pro tablemodel JTable resulttable = new JTable( tablemodel ); // umisteni komponent GUI co obsahu pane add( box, BorderLayout.NORTH ); add( new JScrollPane( resulttable ), BorderLayout.CENTER );
69 // vytvoreni event listener pro submitbutton submitbutton.addactionlistener( Osnova new ActionListener() { // predani dotazu modelu table public void actionperformed( ActionEvent event ) { // vykonani noveho dotazu try { tablemodel.setquery( queryarea.gettext() ); } // end try catch ( SQLException sqlexception ) { JOptionPane.showMessageDialog( ( null, sqlexception.getmessage(), "Database error", JOptionPane.ERROR_MESSAGE ); // blok try pro osetreni neplatneho uzivatelskeho dotazu // pomoci vykonani standardniho dotazu try { tablemodel.setquery( DEFAULT_QUERY ); queryarea.settext( DEFAULT_QUERY ); } // end try
70 catch ( SQLException sqlexception2 ) { JOptionPane.showMessageDialog( ( null, sqlexception2.getmessage(), "Database error", JOptionPane.ERROR_MESSAGE ); Osnova // zjisteni, zda je pripojeni k DB uzavrene tablemodel.disconnectfromdatabase(); System.exit( 1 ); // ukonceni aplikace } // end inner catch } // end outer catch } // end actionperformed } // end ActionListener inner class ); // end call to addactionlistener setsize( 500, 250 ); // nastaveni velikosti okna setvisible( true ); // zobrazeni okna } // end try catch ( ClassNotFoundException classnotfound ) { JOptionPane.showMessageDialog( ( null, "MySQL driver not found", "Driver not found", JOptionPane.ERROR_MESSAGE ); System.exit( 1 ); // ukonceni aplikace } // end catch
71 catch ( SQLException sqlexception ) { JOptionPane.showMessageDialog( ( null, sqlexception.getmessage(), "Database error", JOptionPane.ERROR_MESSAGE ); Osnova // zjisteni, zda je pripojeni k DB zavreno tablemodel.disconnectfromdatabase(); System.exit( 1 ); // ukonceni aplikace } // end catch // uvolneni okna, kdyz uzivatel ukonci aplikaci (toto zastini // (overrides) standardni HIDE_ON_CLOSE) setdefaultcloseoperation( ( DISPOSE_ON_CLOSE );
72 // zjisteni, zda je uzavreno pripojeni k DB, kdyz uzivatel ukonci aplikaci addwindowlistener( Osnova new WindowAdapter() { // odpojeni od databaze a ukonceni, kdyz je uzavreno okno public void windowclosed( WindowEvent event ) { tablemodel.disconnectfromdatabase(); System.exit( 0 ); } // end method windowclosed } // end WindowAdapter inner class ); // end call to addwindowlistener } // end DisplayQueryResults constructor // spusteni aplikace public static void main( String args[] ) { new DisplayQueryResults(); } // end main } // end class DisplayQueryResults
73 Osnova Výstup programu s využitím GUI
74 6 Uložené procedury 74 Uložené procedury (Stored procedures) Uloží příkazy SQL v databázi Vyvolání SQL příkazů pomocí programu, který zpřístupní databázi Rozhraní CallableStatement Obdrží argumenty Výstup parametry
75 Internet a zdroje na webu 75 Sun Microsystems JDBC home page Java.sun.com/products/jdbc SQL materials Cloudscape database home page
76 7 Objektově relační mapování 76 Význam objektově relačního mapování (ORM) Dědičnost Strukturovaná data Vztahy mezi objekty Nástroje pro ORM JDO (Java Data Object) Hibernate (databáze pro J2EE)
77 Význam ORM 77 Indepance mismatch nesoulad mezi objektovými technologiemi a relačním uložením dat Vrstva ORM odděluje logický a fyzický datový model Mapování objektového modelu na fyzické databázové schéma manuální automatizované smíšené Mapování má velký vliv na efektivitu aplikací
78 Dědičnost 78 Sdílení společné struktury a chování Možnost opakovaného využitíčásti implementace společných částí Možnosti generického přístupu k částem hierarchie objektů Např. provedení akce nad všemi osobami Abstraktní / konkrétní třídy
79 Příklad hierarchie tříd 79
80 Mapování dědičnosti 80 Horizontální mapování Tabulka pro každou konkrétní třídu Obsahuje atributy všech bázových tříd Vertikální mapování Tabulka pro každou konkrétní i abstraktní třídu Získání informací o objektu vyžaduje přístup do více tabulek Mapování pomocí unie Společná tabulka pro více tříd Neefektivní uložení dat
81 Horizontální mapování 81 B id a b D id a C d E id a C e Vyber všechny hodnoty a (např. login a jméno všech osob) (SELECT a FROM B) UNION (SELECT a FROM D) UNION (SELECT a FROM E) Vyber konkrétní hodnotu typu D SELECT * FROM D WHERE id=100; Vytvoř nový objekt typu B INSERT INTO B(id, a, b) VALUES(100, a, b );
82 Vertikální mapování 82 A C E id a... id c... id e Vyber všechny hodnoty a (např. login a jméno všech osob) SELECT * FROM A; Vyber všechny hodnoty typu E SELECT * FROM (A JOIN C JOIN E) WHERE A.id=100; Vytvoř nový objekt typu B INSERT INTO A(id,a) VALUES(100, a ); INSERT INTO B(id,b) VALUES(100, b );
83 Mapování pomocí unie 83 T id type a b c d e Vyber všechny hodnoty a (např. login a jméno všech osob) SELECT a FROM T Vyber konkrétní hodnotu typu E SELECT a,c,e FROM T WHERE id=100; Vyber všechny hodnoty typu E SELECT id,a,c,e FROM T WHERE type= E ; Vytvoř nový objekt typu B INSERT INTO T(id, type, a, b) VALUES(100, B, a, b );
84 T1 id type a b Mapování pomocí unie 84 T2 id type a c d e Vyber všechny hodnoty a (např. login a jméno všech osob) (SELECT id, a FROM T1) UNION (SELECT id, a FROM T2) Vyber konkrétní hodnotu typu E SELECT a, c, e FROM T2 WHERE id= 100; Vyber všechny hodnoty typu E SELECT id, a, c, e FROM T2 WHERE type= E ; Vytvoř nový objekt typu B INSERT INTO T1(id, type, a, b)values(100, B, a, b );
85 Dědičnost - hodnocení 85 Horizontální mapování Složité dotazy nad abstraktními třídami (union) Vertikální mapování Složitější výběr konkrétního objektu (union) Příliš mnoho tabulek Flexibilita vhodné pro návaznost na existující data Mapování pomocí unie Rozumné množství tabulek Nutnost zavedení informace o typu Větší prostorové nároky
86 Strukturovaná data 86 Zanořený objekt (např. adresa osoby) Kolekce (např. kontakty osoby)
87 Zanořené objekty 87 Vložení atributů do vnějšího objektu id ulice psč obec adresa Osamostatnění zanořeného objektu id id_adr id ulice psč obec
88 Vztahy 88 1:1 přímá reference na objekt cizí klíč = primární klíč druhého objektu může být obousměrný vztah 1:N reference na straně N vazební tabulka není nutná M:N vazební tabulka cizí klíče do obou svázaných tabulek
89 Vztah 1:1 89 A B a b id b id Vyber hodnotu A příslušnou konkrétní hodnotě B SELECT B.* FROM A,B WHERE A.b=B.id AND A.id=100 Vyber hodnotu A příslušnou konkrétní hodnotě B SELECT A.* FROM A,B WHERE A.b=B.id AND B.id=100
90 Vztah 1:N 90 A B a a a A B id id a Vyber všechny hodnoty B příslušné konkrétní hodnotě A SELECT B.* FROM A,B WHERE B.a=A.id AND A.id=100
91 Vztah M:N 91 A B A AB B id a b id Vyber všechny hodnoty B příslušné konkrétní hodnotě A SELECT B.* FROM A,AB,B WHERE AB.a=A.id AND AB.b=B.id AND A.id=100
92 Použití nástrojů pro ORM Návrh objektového modelu např. UML 2. Implementace modelu např. Java 3. Doplnění podpůrných metod Perzistence vytvoření, uložení, načtení, zrušení objektu Transakce Referenční integrita
93 Přístupy k automatizaci ORM 93 Modifikace na úrovni zdrojového textu Dědičnost rozšíření o metody zajišťující perzistenci J2EE CMP (Container Managed Persistence) Modofikace vygenerovaných tříd JDO (Java Data Objects) Sun JSR 12 Mapování za běhu pomocí reflexe Hibernate
94 Další informace
Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti
Práce s databází Specifikace JDBC Pro práci s relačními databázemi poskytuje Java rozhraní JDBC Java Database Connectivity. Specifikace tohoto rozhraní má několik verzí. Verze 1.x je součástí SDK již od
VíceSemináˇr Java X JDBC Semináˇr Java X p.1/25
Seminář Java X JDBC Seminář Java X p.1/25 Úvod JDBC API poskytuje základní rozhraní pro unifikovaný přístup k databázím Programátor je odstíněn od specifického API databáze Jednotné rozhraní JDBC pro všechny
VíceNávrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
VícePoužití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
VíceÚvod do databází. Modelování v řízení. Ing. Petr Kalčev
Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost
VíceDatabázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi
Více4. lekce Přístup k databázi z vyššího programovacího jazyka
4. lekce Přístup k databázi z vyššího programovacího jazyka Studijní cíl Tento blok popisuje základní principy přístupu k databázi z vyššího programovacího jazyka. Doba nutná k nastudování 2-3 hodiny Průvodce
VíceJava a Caché IV: Manipulace s objekty
1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.
Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na
VícePlatforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15
Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceDatabázové a informační systémy
Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat
VíceDatová vrstva informačního systému. Miroslav Beneš
Datová vrstva informačního systému Miroslav Beneš Obsah přednášky JDBC architektura ovladače použití ODBC architektura ovladače a zdroje dat použití PHP & MySQL Datová vrstva informačního systému 2 Java
VíceBridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
VíceDatabáze I. Přednáška 4
Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice
VíceJava - výjimky. private void vstup() throws IOException {... }
Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace
VíceDatabáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata
Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat
VíceTÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 20. Otázka : Datová vrstva informačního systému. Nezávislý přístup k datům - standardy ODBC/JDBC. Architektura a použití ADO.NET. Obsah : 1. ODBC 2. JDBC 2.1
VíceKurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
VíceZápadočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz
Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním
VíceTřídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace
Více2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy
VíceDatová vrstva informačního systému. Java Database Connectivity JDBC. Obsah přednášky JDBC. Datová vrstva informačního systému
Datová vrstva informačního systému Miroslav Beneš Obsah přednášky JDBC architektura ovladače použití ODBC architektura ovladače a zdroje dat použití PHP & MySQL Datová vrstva informačního systému 2 Java
Více8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
VíceDatabázové systémy Cvičení 5.2
Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ
VíceO Apache Derby detailněji. Hynek Mlnařík
O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila
VíceObject-relational mapping (JPA, Hibernate)
Vysoká škola báňská - technická univerzita Ostrava 17. března 2010 Obsah 1 2 3 4 namapovat chování objektového světa do relačních struktur a naopak, tak aby spolu mohli jednoduše komunikovat většina moderních
VíceDatabázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceDatabázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce
Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální
VíceRMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
VíceSemestrální práce z DAS2 a WWW
Univerzita Pardubice Fakulta elektrotechniky a informatiky Semestrální práce z DAS2 a WWW Databázová část Matěj Trakal 8.12.2009 Kapitola 1: Obsah KAPITOLA 1: OBSAH 2 KAPITOLA 2: ZÁKLADNÍ CHARAKTERISTIKA
VíceMichal Krátký, Miroslav Beneš
Databázové a informační systémy Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava 5.12.2005 2005 Michal Krátký, Miroslav Beneš Databázové a informační systémy 1/24 Obsah
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceZáklady informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant
Základy informatiky 06 Databázové systémy Kačmařík/Szturcová/Děrgel/Rapant Problém zpracování dat důvodem je potřeba zpracovat velké množství dat, evidovat údaje o nějaké skutečnosti: o skupině lidí (zaměstnanců,
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
VíceZáklady informatiky. 08 Databázové systémy. Daniela Szturcová
Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,
VíceUkládání a vyhledávání XML dat
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření
VíceDatabázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
VíceDatabázové systémy. Datová integrita + základy relační algebry. 4.přednáška
Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005 2008 Michal Krátký Tvorba informačních systémů 1/39 Konceptuální
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VícePL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
VíceJazyk SQL databáze SQLite. připravil ing. petr polách
Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35 Konceptuální
VíceInformační systémy ve zdravotnictví. 6. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace
VíceGeorge J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu
A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek
5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené
VíceOBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013
OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,
Více7. Integrita a bezpečnost dat v DBS
7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13
Více7. Integrita a bezpečnost dat v DBS
7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13
VíceDatabáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza
Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Seznámení s SQL Server Management Studiem (SSMS) Základní architektura
VíceDatabázové a informační systémy Jana Šarmanová
Databázové a informační systémy Jana Šarmanová Obsah Úloha evidence údajů, způsoby evidování Databázové technologie datové modely, dotazovací jazyky. Informační systémy Datové sklady Metody analýzy dat
VíceDatabáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
VíceKIV/ZIS cvičení 5. Tomáš Potužák
KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí
VíceSTARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ
STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ Technologie Jalapeño od InterSystems Andreas Dieckow, Principal Product Manager, Strategic Planning InterSystems Corporation Úvod Programovací jazyk Java má díky
VíceUNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky. Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof Bakalářská práce 2011 Prohlášení autora Prohlašuji, že jsem tuto práci
VíceJazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Data Reader BI-PCS Evropský sociální fond Praha & EU:
VíceKMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 6. seminář 2.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Ukládání dat Ukládání dat Jaké jsou možnosti? SharedPreferences jednoduchá data databáze SQLite relační
VícePři studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
Více5. POČÍTAČOVÉ CVIČENÍ
5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze
VíceProgramování v jazyku C# II. 5.kapitola
Programování v jazyku C# II. 5.kapitola Obsah O ADO.NET Spojení s DB Příkazy Jednoduché čtení DataSet 2/28 ADO.NET ADO - ActiveX Data Object Orientováno na webové aplikace neexistence stavu v HTTP Obecný
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceKTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
VíceKurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.
Kurz Databáze Přechod na SQL server Lektor: Doc. Ing. Radim Farana, CSc. Obsah Vytvoření databáze. Konverze databáze z MS-Access na SQL Server. Konverzní předpis pro pozdější použití. Definice schématu
Více1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4
CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceSoubor jako posloupnost bytů
Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení
VíceDatabázové systémy a SQL
Databázové systémy a SQL Daniel Klimeš Autor, Název akce 1 About me Daniel Klimeš Vzdělání: Obecná biologie PGS: onkologie Specializace: klinické databáze Databáze ORACLE klimes@iba.muni.cz Kotlářská 2,
VíceJazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Entity Framework BI-PCS Evropský sociální fond Praha
Vícepublic static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());
Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového
VíceB0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux
B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:
VíceInovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL
VíceKapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75
Stručný obsah Část 1 Základy aplikace Microsoft Access Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75 Část 2 Vytváření
VíceKIV/ZIS cvičení 6. Tomáš Potužák
KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP
VíceDPKOM_06 Dědičnost entit a zpětná volání posluchači
DPKOM_06 Dědičnost entit a zpětná volání posluchači 1 Obsah přednášky Jedna tabulka pro hierarchii tříd Tabulka pro konkrétní třídu Tabulka pro podtřídu Neentitní základní třídy Události zpětného volání
VíceMichal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/18 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/18 Úvod
VíceOracle XML DB. Tomáš Nykodým
Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových
VíceInnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou
MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství
VíceGenerické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
VíceJalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer
Jalapeño: pekelně ostrá Java persistence v Caché Daniel Kutáč Senior Sales Engineer Co je Jalapeño Pár slov ředitele vývoje software Klikni! Tak tedy, o čem dnes budeme mluvit Architektura Instalace Anotace
VíceKapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
VíceProgramování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
VíceProgramování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
VíceVytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
VíceObchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo
VíceWebové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
VíceDatabáze SQL SELECT. David Hoksza http://siret.cz/hoksza
Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.
Základy programování 4 - C# 7. cvičení Radek Janoštík Univerzita Palackého v Olomouci 26.3.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.2017 1 / 14 Reakce na úkoly
VíceKIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
VíceStručný obsah. K2118.indd 3 19.6.2013 9:15:27
Stručný obsah 1. Stručný obsah 3 2. Úvod 11 3. Seznamy a databáze v Excelu 13 4. Excel a externí data 45 5. Vytvoření kontingenční tabulky 65 6. Využití kontingenčních tabulek 81 7. Kontingenční grafy
VíceStěhování aplikací. Michal Tomek, Sales Manager
Stěhování aplikací Michal Tomek, Sales Manager Agenda Co míníme stěhováním Typické situace Role InterSystems Příležitosti Migrace Stěhování informačního systému Nová budova. HW a OS Získáme nové vlastnosti
VíceAbstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz
VíceDatabázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.
Databáze Základní pojmy Pojem databáze označuje obecně souhrn informací, údajů, dat o nějakých objektech. Úkolem databáze je hlídat dodržení všech omezení a dále poskytovat data při operacích. Objekty
VíceObsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23
Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod
Více