Java Database Connectivity

Из Википедии, бесплатной энциклопедии

JDBC
Тип Data Access API
Написана на Java
Аппаратная платформа Java Virtual Machine
Последняя версия JDBC 4.3 (сентябрь 21, 2017 (2017-09-21))
Сайт Java SE 8
Логотип Викисклада Медиафайлы на Викискладе

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

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

История[править | править код]

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

Интерфейсы[править | править код]

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

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

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

  • java.sql.Statement — Statement общего назначения;
  • java.sql.PreparedStatement — Statement, служащий для выполнения запросов, содержащих подставляемые параметры (обозначаются символом '?' в теле запроса);
  • java.sql.CallableStatement — Statement, предназначенный для вызова хранимых процедур.

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

Преимущества[править | править код]

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

  • Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает
  • Код практически не меняется, если компания переходит на другую базу данных (количество изменений зависит исключительно от различий между диалектами SQL)
  • Не нужно устанавливать громоздкую клиентскую программу
  • К любой базе можно подсоединиться через легко описываемый URL

Примеры[править | править код]

Пример кода

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 = null;         try {             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();         }         catch (SQLException e) {             e.printStackTrace();         } finally{             if (conn != null){                 conn.close();             }         }     } } 

Примечания[править | править код]

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

Ссылки[править | править код]