Spec-Zone.ru › OpenJDK 27

Пакет java.sql

package java.sql
Предоставляет API для доступа к данным, хранящимся в источнике данных (обычно в реляционной базе данных), и их обработки с помощью языка программирования Java. Этот API включает инфраструктуру, позволяющую динамически устанавливать различные драйверы для доступа к разным источникам данных. Хотя API JDBC в основном предназначен для передачи SQL-инструкций базе данных, он позволяет считывать данные из любого источника данных с табличным форматом и записывать их в него. Средство чтения/записи, доступное через группу интерфейсов javax.sql.RowSet, можно настроить для использования и обновления данных в электронной таблице, плоском файле или любом другом табличном источнике данных.

Что включает API JDBC 4.5

API JDBC 4.5 включает пакет java.sql, называемый базовым API JDBC, и пакет javax.sql, называемый API дополнительного пакета JDBC. Полный API JDBC входит в Java Standard Edition (Java SE). Пакет javax.sql расширяет функциональность API JDBC, превращая клиентский API в серверный API; он является неотъемлемой частью технологии Java Enterprise Edition (Java EE).

Версии

API JDBC 4.5 включает все предыдущие версии API JDBC:
  • API JDBC 4.4
  • API JDBC 4.3
  • API JDBC 4.2
  • API JDBC 4.1
  • API JDBC 4.0
  • API JDBC 3.0
  • Базовый API JDBC 2.1
  • API дополнительного пакета JDBC 2.0
    (Обратите внимание: базовый API JDBC 2.1 и API дополнительного пакета JDBC 2.0 вместе называются API JDBC 2.0.)
  • API JDBC 1.2
  • API JDBC 1.0

Для классов, интерфейсов, методов, полей, конструкторов и исключений используются следующие теги "since", указывающие, когда они были добавлены в платформу Java. В комментариях Javadoc для API JDBC эти теги "since" обозначают следующее:

  • Since 26 — новое в API JDBC 4.5 и входит в платформу Java SE версии 26
  • Since 24 — новое в API JDBC 4.4 и входит в платформу Java SE версии 24
  • Since 9 — новое в API JDBC 4.3 и входит в платформу Java SE версии 9
  • Since 1.8 — новое в API JDBC 4.2 и входит в платформу Java SE версии 8
  • Since 1.7 — новое в API JDBC 4.1 и входит в платформу Java SE версии 7
  • Since 1.6 — новое в API JDBC 4.0 и входит в платформу Java SE версии 6
  • Since 1.4 — новое в API JDBC 3.0 и входит в платформу J2SE версии 1.4
  • Since 1.2 — новое в API JDBC 2.0 и входит в платформу J2SE версии 1.2
  • Since 1.1 или тег "since" отсутствует — присутствует в исходном API JDBC 1.0 и входит в JDK версии 1.1

ПРИМЕЧАНИЕ: Многие новые функции являются необязательными; поэтому драйверы и поддерживаемые ими функции могут различаться. Прежде чем использовать функцию, обязательно проверьте в документации драйвера, поддерживает ли он ее.

Содержимое пакета java.sql

Пакет java.sql содержит API для следующего:
  • Установление соединения с базой данных с помощью средства DriverManager
    • класс DriverManager — устанавливает соединение с помощью драйвера
    • интерфейс Driver — предоставляет API для регистрации драйверов на основе технологии JDBC («драйверов JDBC») и установления соединений с их помощью; обычно используется только классом DriverManager
    • класс DriverPropertyInfo — предоставляет свойства для драйвера JDBC; не используется обычным пользователем
  • Отправка SQL-инструкций в базу данных
    • Statement — используется для отправки простых SQL-инструкций
    • PreparedStatement — используется для отправки подготовленных или простых SQL-инструкций (производный от Statement)
    • CallableStatement — используется для вызова хранимых процедур базы данных (производный от PreparedStatement)
    • интерфейс Connection — предоставляет методы для создания инструкций и управления соединениями и их свойствами
    • Savepoint — предоставляет точки сохранения в транзакции
  • Получение результатов запроса и их обновление
    • интерфейс ResultSet
  • Стандартные сопоставления типов SQL с классами и интерфейсами языка программирования Java
    • интерфейс Array — сопоставление с типом SQL ARRAY
    • интерфейс Blob — сопоставление с типом SQL BLOB
    • интерфейс Clob — сопоставление с типом SQL CLOB
    • класс Date — сопоставление с типом SQL DATE
    • класс JDBCType — предоставляет константы перечисления для типов SQL
    • интерфейс NClob — сопоставление с типом SQL NCLOB
    • интерфейс Ref — сопоставление с типом SQL REF
    • интерфейс RowId — сопоставление с типом SQL ROWID
    • интерфейс Struct — сопоставление с типом SQL STRUCT
    • интерфейс SQLXML — сопоставление с типом SQL XML
    • класс Time — сопоставление с типом SQL TIME
    • класс Timestamp — сопоставление с типом SQL TIMESTAMP
    • класс Types — предоставляет константы для типов SQL
  • Пользовательское сопоставление определяемого пользователем типа SQL (UDT) с классом языка программирования Java
    • интерфейс SQLData — определяет сопоставление UDT с экземпляром этого класса
    • интерфейс SQLInput — предоставляет методы для чтения атрибутов UDT из потока
    • интерфейс SQLOutput — предоставляет методы для записи атрибутов UDT обратно в поток
  • Метаданные
    • интерфейс DatabaseMetaData — предоставляет информацию о базе данных
    • интерфейс ResultSetMetaData — предоставляет информацию о столбцах объекта ResultSet
    • интерфейс ParameterMetaData — предоставляет информацию о параметрах команд PreparedStatement
  • Исключения
    • SQLException — выбрасывается большинством методов при возникновении проблемы с доступом к данным, а некоторыми методами — по другим причинам
    • SQLWarning — выбрасывается для обозначения предупреждения
    • DataTruncation — выбрасывается для обозначения возможного усечения данных
    • BatchUpdateException — выбрасывается для обозначения того, что не все команды пакетного обновления выполнены успешно

Функции java.sql и javax.sql, появившиеся в API JDBC 4.5

  • Интерфейсы Array, Blob, Clob, NClob и SQLXML теперь расширяют интерфейс AutoCloseable и включают реализацию метода close по умолчанию
  • В Connection добавлена поддержка заключения литералов и простых идентификаторов в кавычки
  • SQLPermissions помечен как устаревший для последующего удаления
  • Типы SQL JSON и DECFLOAT добавлены в JDBCType и Types

Функции java.sql и javax.sql, появившиеся в API JDBC 4.4

  • Удалено упоминание SecurityManager и SecurityException, поскольку SecurityManager больше не поддерживается
  • SQLPermissions больше нельзя использовать для управления доступом к ресурсам, поскольку SecurityManager больше не поддерживается
  • В Connection добавлена поддержка заключения литералов и простых идентификаторов в кавычки

Функции java.sql и javax.sql, появившиеся в API JDBC 4.3

  • Добавлена поддержка Sharding
  • В Connection добавлена возможность передавать драйверу указания о начале или завершении запроса — независимой единицы работы
  • В DatabaseMetaData добавлена возможность определять, поддерживается ли шардирование
  • В DriverManager добавлен метод drivers, возвращающий поток текущих загруженных и доступных драйверов JDBC
  • В Statement добавлена поддержка заключения литералов и простых идентификаторов в кавычки
  • Уточнена версия Java SE, в которой методы были объявлены устаревшими

Функции java.sql и javax.sql, появившиеся в API JDBC 4.2

  • Добавлены перечисление JDBCType и интерфейс SQLType
  • Добавлена поддержка REF CURSORS в CallableStatement
  • Методы DatabaseMetaData для получения максимального логического размера LOB и сведений о поддержке курсоров Ref
  • Добавлена поддержка больших счетчиков обновлений

Функции java.sql и javax.sql, появившиеся в API JDBC 4.1

  • Разрешено использовать объекты Connection, ResultSet и Statement в операторе try-with-resources
  • В CallableStatement и ResultSet добавлена возможность указывать тип Java для преобразования с помощью метода getObject
  • Методы DatabaseMetaData для получения псевдостолбцов и сведений о том, всегда ли возвращается сгенерированный ключ
  • В Connection добавлена поддержка указания схемы базы данных, прерывания физического соединения и установки времени ожидания.
  • Добавлена поддержка закрытия объекта Statement при закрытии зависимых от него объектов
  • Добавлена поддержка получения родительского средства ведения журнала для Driver, DataSource, ConnectionPoolDataSource и XADataSource

Функции java.sql и javax.sql, появившиеся в API JDBC 4.0

  • Автоматическое обнаружение java.sql.Driver — больше не нужно загружать класс java.sql.Driver с помощью Class.forName
  • Добавлена поддержка национальных наборов символов
  • Добавлена поддержка типа данных XML из SQL:2003
  • Усовершенствования SQLException — добавлена поддержка цепочек причин; добавлены новые исключения SQL для распространенных кодов значений класса SQLState
  • Расширена функциональность Blob/Clob — добавлена поддержка создания и освобождения экземпляров Blob/Clob, а также дополнительные методы для упрощения доступа
  • Добавлена поддержка доступа к SQL ROWID
  • Добавлена поддержка доступа приложения JDBC к экземпляру ресурса JDBC, обернутому поставщиком, обычно в среде сервера приложений или пула соединений.
  • Добавлена возможность получать уведомления о закрытии PreparedStatement, связанного с PooledConnection, или о том, что драйвер считает его недействительным

Функции java.sql и javax.sql, появившиеся в API JDBC 3.0

  • Пулируемые инструкции — повторное использование инструкций, связанных с пулом соединений
  • Точки сохранения — позволяют откатить транзакцию до указанной точки сохранения
  • Свойства, определенные для ConnectionPoolDataSource, — задают порядок объединения соединений в пул
  • Метаданные параметров объекта PreparedStatement
  • Возможность получать значения автоматически сгенерированных столбцов
  • Возможность одновременно получать несколько объектов ResultSet из открытых объектов CallableStatement
  • Возможность идентифицировать параметры объектов CallableStatement по имени, а также по индексу
  • Удерживаемость ResultSet — возможность указывать, должны ли курсоры оставаться открытыми или закрываться в конце транзакции
  • Возможность получать и обновлять экземпляр структурированного типа SQL, на который ссылается объект Ref
  • Возможность программно обновлять значения BLOB, CLOB, ARRAY и REF.
  • Добавлен тип данных java.sql.Types.DATALINK, предоставляющий драйверам JDBC доступ к объектам, хранящимся вне источника данных
  • Добавлены метаданные для получения иерархий типов SQL

Функции java.sql, появившиеся в базовом API JDBC 2.1

  • Прокручиваемые наборы результатов — новые методы интерфейса ResultSet позволяют перемещать курсор к определенной строке или в позицию относительно текущей
  • Пакетные обновления
  • Программные обновления — с помощью методов обновления ResultSet
  • Новые типы данных — интерфейсы, сопоставляющие типы данных SQL3
  • Пользовательское сопоставление определяемых пользователем типов (UDT)
  • Различные функции, включая подсказки для повышения производительности, использование символьных потоков, полную точность значений java.math.BigDecimal, дополнительные средства безопасности и поддержку часовых поясов для значений даты, времени и метки времени.

Функции javax.sql, появившиеся в API дополнительного пакета JDBC 2.0

  • Интерфейс DataSource для установления соединения. Java Naming and Directory Interface (JNDI) используется для регистрации объекта DataSource в службе именования, а также для его получения.
  • Пулируемые соединения — позволяют использовать соединения повторно
  • Распределенные транзакции — позволяют транзакции охватывать несколько серверов СУБД
  • Технология RowSet — обеспечивает удобный способ обработки и передачи данных

Пользовательское сопоставление UDT

Определенный в SQL пользовательский тип (UDT) можно сопоставить с классом языка программирования Java. Структурированный тип SQL или тип SQL DISTINCT — это UDT, для которых можно задать пользовательское сопоставление. Пользовательское сопоставление настраивается в три этапа:
  1. Определение структурированного типа SQL или типа DISTINCT в SQL
  2. Определение класса языка программирования Java, с которым будет сопоставлен UDT SQL. Этот класс должен реализовывать интерфейс SQLData.
  3. Добавление записи в карту типов объекта Connection, содержащей два элемента:
    • полное имя UDT в SQL
    • объект Class для класса, реализующего интерфейс SQLData

После настройки этих элементов для UDT вызов методов ResultSet.getObject или CallableStatement.getObject для этого UDT автоматически получит для него пользовательское сопоставление. Кроме того, метод PreparedStatement.setObject автоматически сопоставит объект с его типом SQL для сохранения в источнике данных.

Спецификация пакета

  • Спецификация JDBC 4.5

Связанная документация

  • Урок: основы JDBC (учебные материалы Java > доступ к базам данных JDBC)
С версии:
1.1
Класс Описание
Array
Сопоставление типа SQL ARRAY в языке программирования Java.
BatchUpdateException
Подкласс SQLException, выбрасываемый при возникновении ошибки во время операции пакетного обновления.
Blob
Представление (сопоставление) значения SQL BLOB в языке программирования Java.
CallableStatement
Интерфейс, используемый для выполнения хранимых процедур SQL.
ClientInfoStatus
Перечисление причин, по которым свойство не удалось задать вызовом Connection.setClientInfo
Clob
Сопоставление типа SQL CLOB в языке программирования Java.
Connection
Соединение (сеанс) с определенной базой данных.
ConnectionBuilder
Построитель, созданный из объекта DataSource и используемый для установления соединения с базой данных, которую представляет объект data source.
DatabaseMetaData
Полная информация о базе данных в целом.
DataTruncation
Исключение, выбрасываемое как исключение DataTruncation (при записи) или регистрируемое как предупреждение DataTruncation (при чтении), когда значение данных неожиданно усекается по причинам, не связанным с превышением MaxFieldSize.
Date
Тонкая обертка над значением в миллисекундах, позволяющая JDBC идентифицировать его как значение SQL DATE.
Driver
Интерфейс, который должен реализовывать каждый класс драйвера.
DriverAction
Интерфейс, который необходимо реализовать, если Driver должен получать уведомления от DriverManager.
DriverManager
Основное средство управления набором драйверов JDBC.
DriverPropertyInfo
Свойства драйвера для установления соединения.
JDBCType
Определяет константы для идентификации общих типов SQL, называемых типами JDBC.
NClob
Сопоставление типа SQL NCLOB в языке программирования Java.
ParameterMetaData
Объект, который можно использовать для получения информации о типах и свойствах каждого маркера параметра в объекте PreparedStatement.
PreparedStatement
Объект, представляющий предварительно скомпилированную SQL-инструкцию.
PseudoColumnUsage
Перечисление вариантов использования псевдостолбцов/скрытых столбцов.
Ref
Сопоставление значения SQL REF в языке программирования Java; это значение является ссылкой на значение структурированного типа SQL в базе данных.
ResultSet
Таблица данных, представляющая набор результатов базы данных, который обычно создается при выполнении инструкции, запрашивающей базу данных.
ResultSetMetaData
Объект, который можно использовать для получения информации о типах и свойствах столбцов объекта ResultSet.
RowId
Представление (сопоставление) значения SQL ROWID в языке программирования Java.
RowIdLifetime
Перечисление значений срока жизни RowId.
Savepoint
Представление точки сохранения — точки в текущей транзакции, на которую можно сослаться с помощью метода Connection.rollback.
ShardingKey
Интерфейс, указывающий, что этот объект представляет ключ шардирования.
ShardingKeyBuilder
Построитель, созданный из объекта DataSource или XADataSource и используемый для создания ShardingKey с подчиненными ключами поддерживаемых типов данных.
SQLClientInfoException
Подкласс SQLException, выбрасываемый, если для объекта Connection не удалось задать одно или несколько свойств клиентской информации.
SQLData
Интерфейс для пользовательского сопоставления определяемого пользователем типа SQL (UDT) с классом языка программирования Java.
SQLDataException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «22» или при условиях, определенных поставщиком.
SQLException
Исключение, содержащее сведения об ошибке доступа к базе данных или другой ошибке.
SQLFeatureNotSupportedException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «0A» (значение — «ноль» и A).
SQLInput
Входной поток значений, представляющих экземпляр структурированного или отдельного типа SQL.
SQLIntegrityConstraintViolationException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «23» или при условиях, определенных поставщиком.
SQLInvalidAuthorizationSpecException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «28» или при условиях, определенных поставщиком.
SQLNonTransientConnectionException
Подкласс SQLException, выбрасываемый при значении класса SQLState «08» или при условиях, определенных поставщиком.
SQLNonTransientException
Подкласс SQLException, выбрасываемый в ситуации, когда повторная попытка выполнить ту же операцию завершится неудачей, если не устранить причину SQLException.
SQLOutput
Выходной поток для записи атрибутов определяемого пользователем типа обратно в базу данных.
SQLPermission Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Для этого класса нет замены.
SQLRecoverableException
Подкласс SQLException, выбрасываемый в ситуациях, когда ранее завершившаяся неудачей операция может завершиться успешно, если приложение выполнит некоторые действия по восстановлению и повторит всю транзакцию, а в случае распределенной транзакции — ее ветвь.
SQLSyntaxErrorException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «42» или при условиях, определенных поставщиком.
SQLTimeoutException
Подкласс SQLException, выбрасываемый по истечении времени ожидания, заданного параметрами Statement.setQueryTimeout, DriverManager.setLoginTimeout, DataSource.setLoginTimeout,XADataSource.setLoginTimeout.
SQLTransactionRollbackException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «40» или при условиях, определенных поставщиком.
SQLTransientConnectionException
Подкласс SQLException для значения класса SQLState «08» или при условиях, определенных поставщиком.
SQLTransientException
Подкласс SQLException, выбрасываемый в ситуациях, когда ранее завершившаяся неудачей операция может завершиться успешно при повторной попытке без вмешательства средств уровня приложения.
SQLType
Объект, используемый для идентификации общего типа SQL, называемого типом JDBC или типом данных, специфичным для поставщика.
SQLWarning
Исключение, содержащее сведения о предупреждениях при доступе к базе данных.
SQLXML
Сопоставление типа SQL XML в языке программирования JavaTM.
Statement
Объект для выполнения статической SQL-инструкции и получения созданных ею результатов.
Struct
Стандартное сопоставление структурированного типа SQL в языке программирования Java.
Time
Тонкая обертка над классом java.util.Date, позволяющая API JDBC идентифицировать его как значение SQL TIME.
Timestamp
Тонкая обертка над java.util.Date, позволяющая API JDBC идентифицировать его как значение SQL TIMESTAMP.
Types
Класс, определяющий константы для идентификации общих типов SQL, называемых типами JDBC.
Wrapper
Интерфейс для классов JDBC, позволяющих получить делегирующий экземпляр, если рассматриваемый экземпляр фактически является классом-прокси.

Сообщить об ошибке или предложить улучшение
Для получения дополнительной справочной информации по API и документации для разработчиков см. документацию Java SE, содержащую более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API