Java Database Connectivity

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 95.71.15.135 (обсуждение) в 20:22, 11 января 2012 (Примеры). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

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

Интерфейсы

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

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

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

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

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

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


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

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

  • Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает;
  • Код не меняется, если компания переходит на другую базу данных;
  • Не нужно устанавливать громоздкую клиентскую программу;
  • К любой базе можно подсоединиться через легко описываемый 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 = 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();
    }
}

См. также

Ссылки