Interested Article - Java Database Connectivity

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

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

История

Sun Microsystems выпустила JDBC как часть JDK 1.1 19 февраля 1997 года . С тех пор он является частью 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. . www.sun.com . Sun Microsystems . Архивировано из 24 июня 2012 года.

Ссылки

  • (рус.)
  • (англ.)
  • (англ.)
Источник —

Same as Java Database Connectivity