Java Database Connectivity

Z Multimediaexpo.cz

(Rozdíly mezi verzemi)

Verze z 21. 10. 2010, 09:17

Java Database Connectivity (známé spíše jako JDBC) je API pro programátory v programovacím jazyku Java, které definuje jednotné rozhraní pro přístup k 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 ovladač, který poskytuje tvůrce databázového serveru.

Obsah

[skrýt]

Úvod

JDBC API vzniklo jako vrstva mezi Java aplikací a vlastní komunikací s databází. Datové typy SQL lze získat z výsledku SQL dotazu jako instance Java tříd a s těmi pracuje aplikace. Naopak JDBC ovladač (driver) dokáže vkládat instance Java tříd do SQL dotazů a správně, v závislosti na zvolené databázi, je uložit, upravit apod. Takto lze vytvořit aplikaci nezávislou na zvoleném databázovém stroji. Nicméně je stále potřeba psát dotazy v SQL - naproti tomu stojí Hibernate.

Přístup k databázi

Identifikace databáze se děje na základě URI, Unified Resource Identifier. Formát tohoto URI je závislý na zvoleném JDBC driveru:

Příklady JDBC URI:

  • MySQL: jdbc:mysql://server/jméno_databáze?characterEncoding=UTF-8
  • Sybase: jdbc:sybase:Tds:server:port/jméno_databáze
  • IBM AS400: jdbc:as400://server/jméno_databáze
  • Oracle: jdbc:oracle:thin:@server:port:jméno_databáze

Příklady JDBC driverů:

  • MySQL: com.mysql.jdbc.Driver
  • Sybase: com.sybase.jdbc3.jdbc.SybDriver
  • IBM AS400: com.ibm.as400.access.AS400JDBCDriver
  • Oracle: oracle.jdbc.driver.OracleDriver

Samozřejmostí je autentizace uživatelským jménem a heslem.

Příklad

public void connect() throws DriverNotFoundException, ConnectionFailedException {
	try {
		Class.forName(jdbcDriver);
		connection = DriverManager.getConnection(dbURI, user, passwd);
	} catch(ClassNotFoundException e) {
		throw new DriverNotFoundException(e.getMessage());
	} catch(SQLException e) {
		throw new ConnectionFailedException(e.getMessage());
	}
}

Nezapomínejte uzavírat navázaná spojení!

public void disconnect() throws DisconnectFailedException {
	try {
		connection.close();
	} catch(SQLException e) {
		throw new DisconnectFailedException(e.getMessage());
	}
}

Související články

Externí odkazy