Java Database Connectivity
Материал из Википедии — свободной энциклопедии
Java DataBase Connectivity, сокращенно JDBC — соединение с базами данных на Java — API для языка Java, который определяет методы, с помощью которых клиентское приложение на Java осуществляет доступ к базе данных, независимо от того какая это база данных и как она имплементирована. Если быть точным, то JDBC является торговой маркой, а не аббревиатурой.
JDBC является частью стандартной версии Java и находится в пакете java.sql
.
JDBC основана на концепции т. н. драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Драйверы могут загружаться динамически (во время работы программы). Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер «отвечает».
Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection
.
Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.
Существуют следующие виды типы Statement, различающихся по назначению:
java.sql.Statement
— Statement общего назначения.java.sql.PreparedStatement
— Statement, служащий для выполнения запросов, содержащих подставляемые параметры (обозначаются значком '?' в теле запроса).java.sql.CallableStatement
— Statement, предназначенный для вызова хранимых процедур.
Интерфейс java.sql.ResultSet
позволяет легко обрабатывать результаты запроса.
Преимущества JDBC:
- Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает
- Код не меняется, если компания переходит на другую базу данных
- Не нужно устанавливать громоздкую клиентскую программу
- К любой базе можно подсоединиться через легко описываемый URL
[править] Пример кода
Данный пример использует jTDS, свободный драйвер JDBC для Microsoft SQL Server и Sybase SQL Server. Подключиться к этой и другим СУБД можно и встроенными средствами с помощью драйвера JDBC для ODBC, но ценой замедления работы.
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();