Java Database Connectivity | это... Что такое Java Database Connectivity? (original) (raw)

JDBC (англ. Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql, входящего в состав Java SE.

JDBC основан на концепции так называемых драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Драйверы могут загружаться динамически (во время работы программы). Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер отвечает.

История

Sun Microsystems выпустила JDBC как часть JDK 1.1 19-го февраля 1997 года[1]. С тех пор он является частью JSE. Классы JDBC находятся в пакетах JAVA java.sql и javax.sql. Начиная с версии 3.1, JDBC разрабатывался в рамках Java Community Process (JCP), который включает в себя стандартизованные спецификации для JAVA разработчиков.

Интерфейсы

JDBC API содержит два основных типа интерфейсов: первый — для разработчиков приложений и второй (более низкого уровня) — для разработчиков драйверов.

Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection.

Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.

Существуют следующие виды типов Statement, различающихся по назначению:

Интерфейс java.sql.ResultSet позволяет легко обрабатывать результаты запроса.

Преимущества

Преимуществами JDBC считают:

Примеры

Примеры кода

JDBC для MySQL
Данный пример использует свободный драйвер JDBC для MySQL, который легко устанавливается в большинстве дистрибутивов Linux через стандартные репозитории.
package javaapplication1; import java.sql.*; public class Main { public static void main(String[] args) throws SQLException { /** * эта строка загружает драйвер DB. * раскомментируйте если прописываете драйвер вручную */ //Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/db_name", "user", "password"); if (conn == null) { System.out.println("Нет соединения с БД!"); System.exit(0); } Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { System.out.println(rs.getRow() + ". " + rs.getString("firstname") + "\t" + rs.getString("lastname")); } /** * stmt.close(); * При закрытии Statement автоматически закрываются * все связанные с ним открытые объекты ResultSet */ stmt.close(); } }
JDBC для Microsoft SQL Server
Данный пример использует jTDS, свободный драйвер JDBC для Microsoft SQL Server и Sybase ASE SQL-Server. Подключиться к этой и другим СУБД можно и встроенными средствами с помощью драйвера JDBC для ODBC, но ценой замедления работы.
/** * эта строка указывает альтернативный драйвер DB. Например hsql. */ // Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager.getConnection( "jdbc:jtds:sqlserver://SERVER/Northwind;instance=INST;domain=Sample_NTLM_Domain", "user", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT LastName + ' ' + FirstName AS FullName, Address FROM Employees"); while(rs.next()) { System.out.println(rs.getString("FullName") + "\t" + rs.getString("Address")); } rs.close(); stmt.close();

Примечания

  1. Спецификация JDBC 3.0. www.sun.com. Sun Microsystems. Архивировано из первоисточника 24 июня 2012.

Ссылки

Просмотр этого шаблона Базы данных
Концепции Модель данных • Реляционная (модельалгебраНормальная формаСсылочная целостностьБДСУБД) • Иерархическая модель • Сетевая (модельСУБД) • Объектно-ориентированная (БДСУБД) • ТранзакцияЖурнализацияСекционирование
Объекты Отношение (таблица)ПредставлениеХранимая процедураТриггерКурсорИндекс
Ключи ПотенциальныйПервичныйВнешнийЕстественныйСуррогатный (искусственный) • Суперключ
SQL SELECTINSERTUPDATEMERGEDELETETRUNCATEJOINUNIONINTERSECT • EXCEPT • CREATE • ALTER • DROP • GRANT • COMMITROLLBACK
СУБД IMSDB2InformixOracle DatabaseMicrosoft SQL ServerAdaptive Server EnterpriseTeradata DatabaseFirebirdPostgreSQLMySQLSQLiteMicrosoft AccessVisual FoxProЛИНТЕРCouchDBMongoDB
Компоненты Язык запросовОптимизатор запросовПлан выполнения запросаODBCADOADO.NETJDBC