JDBC | |
---|---|
Typ | Data Access API |
Zapsáno v | Jáva |
Hardwarová platforma | Java virtuální stroj |
Nejnovější verze | JDBC 4.3 (21. září 2017 ) |
webová stránka | Java SE 8 |
Mediální soubory na Wikimedia Commons |
JDBC ( anglicky Java DataBase Connectivity - connection with Java databases ) je průmyslový standard nezávislý na platformě pro interakci Java aplikací s různými DBMS , implementovaný jako balíček java.sqlzahrnutý v Java SE .
JDBC je založeno na konceptu tzv. ovladačů, které umožňují získat připojení k databázi na speciálně popsané URL . Ovladače lze načítat dynamicky (za běhu programu). Po načtení se ovladač sám zaregistruje a je volán automaticky, když program vyžaduje URL obsahující protokol, za který je ovladač zodpovědný.
Sun Microsystems vydal JDBC jako součást JDK 1.1 19. února 1997 [1] . Od té doby je součástí J2SE . Třídy JDBC jsou v balíčcích java.sql a javax.sql. Od verze 3.1 je JDBC vyvíjen v rámci Java Community Process (JCP), který zahrnuje standardizované specifikace pro vývojáře Java.
JDBC API obsahuje dva hlavní typy rozhraní: první je pro vývojáře aplikací a druhé (nižší úroveň) je pro vývojáře ovladačů.
Databázové připojení je popsáno třídou, která implementuje java.sql.Connection. Po připojení k databázi můžete vytvářet objekty typu Statement, které se používají k provádění databázových dotazů v jazyce SQL .
Existují následující typy typů výpisů, které se liší účelem:
Rozhraní java.sql.ResultSetusnadňuje zpracování výsledků dotazů.
Výhody JDBC jsou:
Příklad kódu
JDBC pro MySQL |
---|
Tento příklad používá bezplatný ovladač MySQL JDBC , který se snadno instaluje na většinu distribucí Linuxu prostřednictvím standardních repozitářů . |
packagejavaapplication1 ; _ import java.sql.* ; public class Hlavní { public static void main ( String [] args ) vyvolá výjimku SQL { /** * tento řádek načte ovladač DB. * zrušte komentář, pokud ovladač píšete ručně */ //Class.forName("com.mysql.jdbc.Driver"); Connection conn = null ; zkuste { conn = Driver Manager . getConnection ( "jdbc:mysql://localhost:3306/db_name" , "user" , "password" ); if ( conn == null ) { System . ven . println ( "Nelze se připojit k databázi!" ); Systém . výstup ( 0 ); } Příkaz stmt = conn . createStatement (); ResultSet rs = stmt . executeQuery ( "SELECT * FROM users" ); while ( rs . next ()) { System . ven . println ( rs . getRow () + ". " + rs . getString ( "jméno" ) + "\t" + rs . getString ( "příjmení" )); } /** * stmt.close(); * Zavřením příkazu se automaticky zavře * všechny otevřené objekty ResultSet s ním spojené */ stmt . zavřít (); } catch ( SQLException e ) { e . printStackTrace (); } nakonec { if ( conn != null ){ conn . zavřít (); } } } } |
JDBC pro Microsoft SQL Server |
---|
Tento příklad používá jTDS , bezplatný ovladač JDBC pro Microsoft SQL Server a Sybase ASE SQL-Server . K tomuto a dalším DBMS se můžete také nativně připojit pomocí ovladače JDBC pro ODBC , ale za cenu zpomalení. |
/** * tento řádek určuje alternativní ovladač DB. Například hsql. */ // Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager . getConnection ( "jdbc:jtds:sqlserver://SERVER/Northwind;instance=INST;domain=Sample_NTLM_Domain" , "user" , "password" ); Příkaz stmt = conn . createStatement (); ResultSet rs = stmt . executeQuery ( "SELECT LastName + ' ' + FirstName AS FullName, Address FROM Employes" ); while ( rs . next ()) { System . ven . println ( rs . getString ( "Celé jméno" ) + "\t" + rs . getString ( "Adresa" )); } rs _ zavřít (); stmt . zavřít (); |
Databáze | |
---|---|
Koncepty |
|
Objekty |
|
Klíče | |
SQL | |
Komponenty |