Java Database Connectivity: Porovnání verzí

Smazaný obsah Přidaný obsah
Bez shrnutí editace
Bez shrnutí editace
Řádek 5:
}}
 
'''Java Database Connectivity''' (známé spíše jako '''JDBC''') je [[API]] pro [[programátor]]y v [[programovací jazyk|programovacím jazyku]] [[Java (programovací jazyk)|Java]], které definuje jednotné rozhraní pro přístup k [[relační databáze|relačním databázím]]. JDBC je součástí Javy SE („Standard Edition“) od [[JDK]] 1.1. Pro přístup ke konkrétnímu databázovému serveru je potřeba JDBC driver ([[ovladač]]), který poskytuje tvůrce databázového serveru.
 
== Úvod ==
Řádek 17:
 
== Funkčnost ==
JDBC umožňuje paralelní použití několika implementací v jediné [[aplikaci|aplikace]]. API poskytuje možnost dynamického načtení příslušných Java knihoven a jejich registraci pomocí JDBC Driver Manager. Driver Manager obsahuje tovární metodu pro vytvoření připojení s databází předpřes JDBC.
Připojení k databázi přes JDBC umožňuje tvorbu a vykonání jednotlivých příkazů. Patří mezi ně SQL příkazy pro modifikaci dat: CREATE, INSERT, UPDATE a DELETE a také dotazovací příkaz SELECT. JDBC připojení také umožňuje přístup k uloženým procedurám. Používání jednotlivých příkazů je specifikováno v následujících rozhraních:
* [http://download.oracle.com/javase/1.4.2/docs/api/java/sql/Statement.html <code>Statement</code>] - příkaz je vždy odeslán databázovému serveru
Řádek 27:
Dotazovací příkazy vrací JDBC řádek s množinou výsledků. Řádek s množinou výsledků se používá k přenesení množiny výsledků. Jednotlivé sloupce jsou v řádku označeny pomocí jména nebo čísla sloupce. Množina výsledků může obsahovat libovolný počet řádků. Dále také obsahuje metadata, která identifikují jména jednotlivých sloupců a jejich datových typů.
 
Rožšíření proRozšíření pro základní verzi JDBC API je obsaženo v knihovně [http://download.oracle.com/javase/6/docs/api/javax/sql/package-summary.html javax.sql].
 
Připojení přes JDBC jsou většinou zprostředkovány pomocí návrhového vzoru fond (anglicky connection pool), zřídkakdy jsou získány přímo skrze ovladač. Příklady připojovacích fondů jsou například:
Řádek 49:
 
===Typy===
Existují jak placené tak freewarovéfreeware ovladače použitelné pro většinu relačně databázových serverů. Každý jednotlivý ovladač je možno zařadit do jednoho z následujících typů:
* Typ 1, který zavolá původní kód lokálně přístupného ODBC driveru.
* Typ 2, který zavolá původní knihovnu od výrobce příslušného databázového systému přímo na straně klienta. Tento kód poté komunikuje s danou databází pomocí sítě.
* Typ 3, ovladač výhradně určnýurčený pro Javu, který komunikuje se serverovou stranou pomocí prostředníka, který dále komunikuje s příslušnou databází.
* Typ 4, ovladač výhradně určnýurčený pro Javu, který využívá původní databázový protokol.
 
Mimo jiné existuje také tzv. internal JDBC driver, který je spolu s [[java runtime environment|JRE]] zařazený v SQL databázích přístupných pro Javu. Tento ovladač se používá pro Java [[uložená procedura|uložené procedury]]. Zmíněný typ ovladače se nedá přímo určit podle zařazení uvedeného výše, nejvíce se podobá ovladači typu 2, případně typu 4 (záleží na tom, zdali je příslušná databáze implementována přímo v Javě, či nikoli). Příkladem takového typu ovladač je KPRB vydaný společností [[Oracle]].
Řádek 97:
</source>
 
Od verze JDBC 4.0 není již nutné explicitně načítat JDBC drivery pomocí Class.forName(). Pro více informací klikněte na [http://onjava.com/pub/a/onjava/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html JDBC 4.0 Enhancements in Java SE 6].
 
Když je [http://download.oracle.com/javase/6/docs/api/java/sql/Driver.html driver] načten, je vytvořena jeho vlastní instance, která je dále zaregistrována pomocí třídy [http://download.oracle.com/javase/6/docs/api/java/sql/DriverManager.html Driver manager]. Proto je nezbytné ve třídě příslušného driveru zahrnout potřebný kód ve statickém inicializačním bloku, např. <code>DriverManager.getConnection()</code>
Řádek 128:
</source>
 
Je důležité povšimnout si faktu, že Připojení (Connections), Příkazy (Statements) a Množiny Výsledků (ResultSets) často vytěžují operační systém, především sockety a popisovač souborů. V případě připojení ke vzdáleným databázovým serverům jsou vytěžovány i další součásti serveru jako např. ukazatele na současně otevřené Množiny výsledků. Je tedy nezbytně nutné zavřít (pomocí <code>close()</code>) jakýkoli JDBC objekt, který již není třeba; programátor by neměl spoléhat pouze na [[Garbage collector]]. Pominutí správného použití metody <code>close()</code> vede k nežádoucím chybám a nesprávnému chodu programu. Při práci s JDBC objekty je doporučeno používat vzorovou konstrukci try-finally (použita též v kódu nahoře).
 
Data jsou získána z databáze použitím databázového mechanizmu dotazů. Na následujícím příkladu je znázorněno vytvoření příkazu (Statement) a vykonání příslušného dotazu.
Řádek 235:
== Související články ==
* [[Open Database Connectivity|ODBC]]
* [[JDBC Driver]]
 
== Externí odkazy ==