Spec-Zone.ru › OpenJDK 24

Пакет java.sql

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

Что включает в себя API JDBC 4.3

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

Версии

API JDBC 4.3 включает в себя все предыдущие версии API JDBC:
  • 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. При использовании этих меток "since" в комментариях Javadoc для API JDBC они обозначают следующее:

  • 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
    • Интерфейс 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.3

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

Функции java.sql и javax.sql, введённые в API JDBC 4.2

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

Функции 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 -- больше не нужно загружать класс java.sql.Driver через Class.forName
  • Добавлена поддержка национального набора символов
  • Добавлена поддержка типа данных XML SQL:2003
  • Улучшения SQLException -- Добавлена поддержка цепочек причин; добавлены новые SQLException для общих кодов состояния 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

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

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

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

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

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

  • Урок: Основы JDBC (Java Tutorials > Доступ к базам данных JDBC)
  • «JDBC API Tutorial and Reference, Third Edition»
Since:
1.1
Класс Описание
Array
Сопоставление в языке программирования Java для типа SQL ARRAY.
BatchUpdateException
Подкласс SQLException, выбрасываемый при возникновении ошибки во время операции пакетного обновления.
Blob
Представление (сопоставление) в языке программирования Java значения SQL BLOB.
CallableStatement
Интерфейс, используемый для выполнения хранимых процедур SQL.
ClientInfoStatus
Перечисление статусов причин, по которым свойство не может быть установлено с помощью вызова Connection.setClientInfo
Clob
Сопоставление в языке программирования Java для типа SQL CLOB.
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
Сопоставление в языке программирования Java для типа SQL NCLOB.
ParameterMetaData
Объект, который можно использовать для получения информации о типах и свойствах для каждого маркера параметра в объекте PreparedStatement.
PreparedStatement
Объект, представляющий предварительно скомпилированное SQL-предложение.
PseudoColumnUsage
Перечисление для использования псевдо/скрытых столбцов.
Ref
Сопоставление в языке программирования Java значения SQL REF, являющегося ссылкой на значение SQL-структурированного типа в базе данных.
ResultSet
Таблица данных, представляющая результирующий набор базы данных, который обычно генерируется выполнением запроса к базе данных.
ResultSetMetaData
Объект, который можно использовать для получения информации о типах и свойствах столбцов в объекте ResultSet.
RowId
Представление (сопоставление) в языке программирования Java значения SQL ROWID.
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-структурированного типа или SQL-типа distinct.
SQLIntegrityConstraintViolationException
Подкласс SQLException, выбрасываемый, когда значение SQLState равно '23', или в условиях, определенных поставщиком.
SQLInvalidAuthorizationSpecException
Подкласс SQLException, выбрасываемый, когда значение SQLState равно '28', или в условиях, определенных поставщиком.
SQLNonTransientConnectionException
Подкласс SQLException, выбрасываемый для значения SQLState '08', или в условиях, определенных поставщиком.
SQLNonTransientException
Подкласс SQLException, выбрасываемый, когда повтор операции приведет к неудаче, если причина SQLException не будет исправлена.
SQLOutput
Поток вывода для записи атрибутов типа пользователя обратно в базу данных.
SQLPermission
Объект SQLPermission содержит имя (также называемое "именем цели"), но не список действий; либо есть разрешение с именем, либо его нет.
SQLRecoverableException
Подкласс SQLException, выбрасываемый в ситуациях, когда ранее неудачная операция может иметь успех, если приложение выполнит некоторые шаги восстановления и повторит всю транзакцию или, в случае распределённой транзакции, ветвь транзакции.
SQLSyntaxErrorException
Подкласс SQLException, выбрасываемый, когда значение SQLState равно '42', или в условиях, определенных поставщиком.
SQLTimeoutException
Подкласс SQLException, выбрасываемый, когда истекло время ожидания, заданное Statement.setQueryTimeout, DriverManager.setLoginTimeout, DataSource.setLoginTimeout,XADataSource.setLoginTimeout.
SQLTransactionRollbackException
Подкласс SQLException, выбрасываемый, когда значение SQLState равно '40', или в условиях, определенных поставщиком.
END_OF_DOCUMENT_MARKER
SQLTransientConnectionException
Подкласс SQLException для значения SQLState '08' или при условиях, заданных поставщиком.
SQLTransientException
Подкласс SQLException, выбрасываемый в ситуациях, когда ранее неудачная операция может быть выполнена успешно при повторном её выполнении без вмешательства функциональности на уровне приложения.
SQLType
Объект, используемый для идентификации универсального типа SQL, называемого JDBC-типом или типом данных, специфичным для поставщика.
SQLWarning
Исключение, предоставляющее информацию о предупреждениях доступа к базе данных.
SQLXML
Сопоставление в языке программирования JavaTM для типа SQL XML.
Statement
Объект, используемый для выполнения статического SQL-запроса и возврата полученных результатов.
Struct
Стандартное сопоставление в языке программирования Java для структурированного типа SQL.
Time
Тонкая оболочка вокруг класса java.util.Date, позволяющая JDBC API идентифицировать это как значение SQL TIME.
Timestamp
Тонкая оболочка вокруг java.util.Date, позволяющая JDBC API идентифицировать это как значение SQL TIMESTAMP.
Types
Класс, определяющий константы, используемые для идентификации универсальных типов SQL, называемых JDBC-типами.
Wrapper
Интерфейс для JDBC-классов, обеспечивающий возможность получения делегата, когда данный экземпляр на самом деле является прокси-классом.

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.sql/java/sql/package-summary.html

Spec-Zone.ru

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