Java JDBC

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

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

В данном руководстве мы рассмотрим пошаговые примеры работы с различными СУБД с помощью таких JDBC объектов, как StatementPreparedStatementCallableStatement. Кроме этого будет показан способ работы с транзакциями через JDBC соединение, а также рассмотрен вопрос интеграции JDBC с другими фреймворками на примере Spring и JSF2.

Быстрый старт

Объект JDBC Statement

Объект типа Statement предназначен для выполнения запросов без параметров. При этом если требуется выполнить запрос типа createinsertupdate или delete, то есть запрос на изменение данных, то нужно использовать метод Statement.executeUpdate(sql), для запросов на получение данных (запросы типа select) нужно использовать метод Statement.executeQuery(sql). Если требуется выполнить запрос на изменение структуры базы данных, то нужно использовать метод Statement.execute(sql);

Объект JDBC PreparedStatement

Интерфейс PreparedStatement является расширением интерфейса Statement и добавляет возможность выполнения параметризованных запросов. По аналогии со Statement для выполнения операций получения данных необходимо пользоваться методом PreparedStatement.executeQuery(), для выполнения запросов на изменение данных — методом PreparedStatement.executeUpdate(), а для выполнения операций по изменению структуры базы данных (или таблиц) — методом PreparedStatement.execute().

Объект JDBC CallableStatement и хранимые процедуры

Хранимые процедуры и объект типа JDBC CallableStatement, примеры использования параметров типа IN, OUT и INOUT в СУБД MySQL.

  • Объекты типа JDBC CallableStatement — пример использования параметров IN.
  • Объекты типа JDBC CallableStatement — пример использования параметров OUT.
  • Объекты типа JDBC CallableStatement — пример использования параметров INOUT.

Пример использования объекта JDBC Statement — обновление записи

В статье показывается пример использования объекта типа JDBC Statement для выполнения запроса изменения данных — обновления записи в таблице. В качестве тестового окружения мы будем использовать СУБД MySQL, базу данных sampledb, таблицу users, созданную в этом примере, и запись для пользователя с user_id равным 1, созданную в этом примере. package ru.j4web.examples.java.jdbc.jdbcstatementupdateexample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import ...

Читать далее »

Пример использования объекта JDBC Statement — создание записи

В статье приведен пример использования объекта типа JDBC Statement для выполнения запроса на внесение изменений в данные, а именно — создание новой записи в таблице. В качестве примера будем использовать СУБД MySQL и таблицу, созданную в примере про создание таблиц в базе данных средствами объекта JDBC Statement. При вставке данных в таблицу мы должны указывать значения для каждого из полей, ...

Читать далее »

Пример использования объекта JDBC Statement — создание таблицы

Пример использования объекта JDBC Statement для целей создания новой таблицы в базе данных. Чтобы выполнить запрос на изменение структуры базы данных, необходимо использовать метод Statement.execute(sql). В качестве примера мы будем использовать СУБД MySQL, существующую базу данных sampledb, в которой мы создадим таблицу users. package ru.j4web.examples.java.jdbc.jdbcstatementcreatetable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; public class JDBCStatementCreateTable ...

Читать далее »

Подключение к СУБД PostgreSQL с помощью JDBC драйвера

В статье содержится пример простого класса, который выполняет попытку подключения к удаленной базе данных PostgreSQL с помощью JDBC драйвера. Добавление драйвера к проекту Для того, чтобы добавить к maven проекту JDBC драйвер для PostgreSQL, необходимо в pom.xml добавить зависимость:         <dependency>             <groupId>postgresql</groupId>             <artifactId>postgresql</artifactId>             <version>9.2-1002.jdbc4</version>         </dependency> Исходный код программы Рассмотрим исходный код простого класса, который выполняет подключение ...

Читать далее »

Подключение к СУБД MySQL с помощью JDBC драйвера

Данное руководство содержит пошаговый пример подключение к СУБД MySQL из Java программы с использованием JDBC драйвера. Добавление драйвера к проекту Для того, чтобы иметь возможность осуществлять подключение с помощью JDBC драйвера, этот драйвер должен находиться в classpath нашего приложения. Если для сборки проекта используется Maven (или какое-то другое средство сборки/управления зависимостями), то будет достаточно просто добавить соответствующую зависимость. В противном ...

Читать далее »

Пример использования объекта JDBC PreparedStatement — создание таблицы

Использование объекта типа PreparedStatement для создания и изменения таблиц базы данных ничем не отличается от использования объекта типа Statement. Разница состоит лишь в том, что указывать SQL запрос нужно не в момент его выполнения (то есть не передавать в качестве аргумента методу execute()), а в момент создания объекта типа PreparedStatement. Поскольку запросы такого типа нельзя параметризовать (в отличие, например, от ...

Читать далее »

Пример использования объекта JDBC PreparedStatement — создание записи

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

Читать далее »

Пример использования объекта JDBC PreparedStatement — обновление записи

Об отличиях объектов типа PreparedStatement и Statement и о преимуществах первого мы говорили в предыдущей статье. В данной статье мы рассмотрим простой пример использования объекта типа PreparedStatement для выполнения операции обновления записи в таблице базы данных. package ru.j4web.examples.java.jdbc.jdbcpreparedstatementupdateexample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class JDBCPreparedStatementUpdateExample {     private static final String DB_URL ...

Читать далее »

Пример использования объекта JDBC PreparedStatement — получение списка записей

Объект типа PreparedStatement может использоваться не только для выполнения операций создания, обновления и удаления записей в таблице базы данных, но также и для получения списка записей с заданием условий поиска. В данной статье мы рассмотрим пример такой программы. Для выполнения запроса на получение данных применяется метод executeQuery(). package ru.j4web.examples.java.jdbc.jdbcpreparedstatementselectexample; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import ...

Читать далее »

Пример использования объекта JDBC PreparedStatement — удаление записи

Для выполнения операции удаления записи из таблицы с помощью объекта типа PreparedStatement используется метод executeUpdate(). Ниже показан пример такого действия. package ru.j4web.examples.java.jdbc.jdbcpreparedstatementdeleteexample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class JDBCPreparedStatementDeleteExample {     private static final String DB_URL = "jdbc:mysql://dev-server/sampledb"             + "?user=sampleuser&password=samplepassword";     private static final String SQL_STATEMENT = "DELETE FROM users WHERE ...

Читать далее »