Пакет java.sql содержит весь JDBC API. Впервые он был включен в ядро библиотек Java в версии 1.1. Классы, добавленные в JDK 1.2, отмечены в заголовке «Доступность». Методы, не рекомендуемые к использованию, предваряются символом «решетки» (#). Методы JDK 1.2 в старых классах JDK 1.1 выделены полужирным шрифтом. На рис. 22-1 показан весь пакет Java. sql.
Рис. 22-1.Классы и интерфейсы пакета java.sql
Array Краткий обзор
Имя класса: Java. sql. Array
Надкласс: нет
Непосредственные подклассы: нет
Реализованные интерфейсы: нет
Доступность: введен в JDK 1.2
Описание
Интерфейс Array добавлен в JDBC для поддержки объектов массивов, введенных в SQL 3. По умолчанию ссылка на массив SQL существует в течение срока жизни транзакции, в которой она была создана.
Сводка методов класса
public interface Array { Object getArray() throws SQLException;
ResultSet getResultSet(long index, int count, Map map) throws SQLException
}
Методы объекта
getArray()
public Object getArray() throws SQLException
public Object getArray(Map map) throws SQLException
public Object getArray(long index, int count)
throws SQLException
public Object getArray(long index, int count, Map map)
throws SQLException
Описание. Помещает содержимое массива SQL в массив Java или тип Java, определяемый передаваемым отображением Map. Если задано отображение, но в нем не найдено соответствия, используется отображение в массив Java по умолчанию. Две версии метода, которые принимают индекс массива и количество, элементов, позволяют поместить в массив подмножество элементов.
getBaseType( )
public int getBaseType() throws SQLException
Описание. Позволяет получить JDBC-тип элементов в массиве. getBaseTypeNamef )
public String getBaseTypeName() throws SQLException
Описание. Позволяет получить SQL-тип элементов в массиве. getResultSet( )
public ResultSet getResultSet() throws SQLException
public ResultSet getResultSet(Map map)
throws SQLException public ResultSet getResultSet(long index, int count)
throws SQLException
public ResultSet getResultSet(long index, int count, Map map)
throws SQLException
Описание. Позволяет получить результирующий набор, содержащий элементы массива в виде строк. Соответствие типов, если это возможно, определяется отображением, установленным для соединения с базой данных, или переданным в качестве аргумента. В каждой строке две колонки: первая колонка - индекс, начинающийся с единицы, вторая колонка - фактическое значение.
Blob
Краткий обзор
Имя класса: java.sql.Blob
Надкласс: нет
Непосредственные подклассы: нет
Реализованные интерфейсы: нет
Доступность: введен в JDK 1.2
Описание
Интерфейс JDBC Blob представляет тип SQL BLOB. BLOB - акроним для «binary large object» («большой двоичный объект»)- представляет в реляционной базе данных двоичные данные большого объема. Ценность использования BLOB в том, что с ним можно работать как с объектом Java, не навлекая из базы все его данные. Объект BLOB действует в продолжение той транзакции, в которой он был создан.
Сводка методов класса
public interface Blob {
InputStream getBinaryStream()
throws SQLException;
byte[] getBytes(long pos, int count)
throws SQLException;
long length() throws SQLException;
long position(byte[] pattern, long start)
throws SQLException;
long position(Blob pattern, long start)
throws SQLException; }
Методы объекта
getBinary Stream ( )
public InputStream getBinaryStream() throws SQLException
Описание. Позволяет извлекать из базы данные двоичного объекта в виде потока.
getBytes()
public byte[] getBytes(long pos, int count) throws SQLException
Описание. Возвращает все данные двоичного объекта или их часть в виде массива байтов. Подмножество двоичных данных можно получить, указав ненулевой начальный индекс и количество байтов, меньшее, чем размер объекта.
length()
public long length() throws SQLException
Описание. Возвращает количество байтов в объекте BLOB.
position ()
public long position(byte[] pattern, long start)
throws SQLException public long position(Blob pattern, long start)
throws SQLException
Описание. Ищет в Blob заданную последовательность байтов и возвращает найденную позицию либо, в случае неуспеха, —1.
CallableStatement
Краткий обзор
Имя класса: j ava. sql. CallableStatement Надкласс: java.sql.PreparedStatement Непосредственные подклассы: нет Реализованные интерфейсы: нет Доступность: JDK1.1
Описание
CallableStatement расширяет интерфейс PreparedSt-atement, обеспечивая поддержку хранимых процедур SQL. Он описывает методы привязки выходных параметров. JDBC предписывает стандартную форму представления хранимых процедур, независимо от используемой СУБД. Формат следующий:
{? = call ...}
{call ...}
Каждый вопросительный знак замещает входной или выходной параметр. В первом синтаксисе есть один результирующий параметр. Во втором синтаксисе результирующих параметров нет. Ссылка на параметры производится последовательно, при этом первый вопросительный знак соответствует параметру номер 1.
Перед выполнением хранимой процедуры все выходные параметры должны быть зарегистрированы методом registerOutParameter(). Затем входные параметры привязываются с помощью каких-либо методов set, и выполняется хранимая процедура.
Сводка методов класса
public interface CallableStatement extends PreparedStatement {
#public BigDecimal getBigDecimal(int index, int scale)
throws SQLException
Описание. Возвращает значение параметра, заданного аргументом index, как тип Java BigDecimal с масштабом, определяемым аргументом scale. Масштаб есть неотрицательное число, задающее количество цифр правее десятичной точки. Параметры нумеруются с 1, поэтому для первого параметра index равен 1.
public Blob getBlob(int index) throws SQLException public boolean getBoolean(int index) throws SQLException
public byte getByte(int index) throws SQLException
public byte[] getBytes(int index) throws SQLException
public Clob getClob(int index) throws SQLException
public double getOouble(int index) throws SQLException
public float getFloat(int index) throws SQLException
public int getlntdnt index) throws SQLException
public long getLong(int index) throws SQLException
public Ref getRef(int index) throws SQLException
public short getShort(int index) throws SQLException
public String getString(int index) throws SQLException
Описание. Возвращает значение параметра, заданного аргументом index, как тот тип данных Java, который определен именем метода.
getDate( ), getTime( ) и getTimestamp()
public Date getDate(int index) throws SQLException
public Date getDate(int index, Calendar cal)
throws SQLException
public Time getTime(int index) throws SQLException
public Time getTime(int index, Calendar cal)
throws SQLException
public Timestamp getTimestamp(int index)
throws SQLException
public Timestamp getTimestamp(int index, Calendar cal)
throws SQLException
Описание. JDBC обеспечивает уточнение базового объекта java.util.Date, более подходящее для работы с базами данных. Эти методы обеспечивают доступ к значениям, возвращаемым CallableStatement, в виде объектов Date, Time или Timestamp. Варианты, добавленные в JDK 1.2, позволяют задавать календарь.
getObject()
public Object getObject(int index) throws SQLException
public Object getObject(int index, Map map) throws SQLException
Описание. Как и все прочие методы getXXX(), этот метод возвращает значение указанного выходного параметра. Но в случае getObject() драйвер JDBC выбирает класс Java, соответствующий типу SQL, зарегистрированному для этого параметра с помощью registerOutPa-rameter() или согласно указанному отображению типов.
registerOutParameter( )
public void registerOutParameter(int index, int type)
throws SQLException
public void registerOutParameter(int index, int type, int scale)
throws SQLException public void registerOutParameter(int index, int type,
String typename) throws SQLException
Описание. Перед выполнением любой хранимой процедуры с помощью CallableStatement необходимо зарегистрировать все выходные параметры. Этот метод регистрирует тип java.sql.Type выходного параметра хранимой процедуры. Первый аргумент задает регистрируемый выходной параметр, а второй- тип java.sql.Type, который нужно зарегистрировать. Версия с тремя аргументами служит для типов BigDecimal, которым требуется масштаб. Выходные параметры читаются затем с помощью соответствующего метода getXXX() или getObject(). Третья версия этого метода введена в JDK 1.2 и позволяет отображать REF-типы SQL или пользовательские типы SQL.
wasNull()
public boolean wasNull() throws SQLException
Описание. Если последнее значение, прочтенное при обращении к getXXX(), было SQL NULL, то этот метод возвращает true.
Clob
Краткий обзор
Имя класса: Java. sql. Glob
Надкласс: нет
Непосредственные подклассы: нет
Реализованные интерфейсы: нет
Доступность: введен в JDK 1.2
Описание
CLOB - это тип SQL3, означающий «character large object» (большой символьный объект). Как и BLOB, CLOB представляет очень большой кусок данных в базе. В отличие от BLOB, тип CLOB представляет текст, хранимый с использованием какой-либо кодировки символов. Смысл использования CLOB вместо CHAR или VARCHAR заключается в том, что данные CLOB, как и данные BLOB, можно извлекать не сразу целиком, а в виде потока.
Сводка методов класса
public interface Clob {
InputStream getAsciiStream()
throws SQLException;
Reader getCharacterStream()
throws SQLException;
String getSubStringdong pos, int count)
throws SQLException;
long length()
throws SQLException;
long position(String pattern, long start)
throws SQLException;
long position(Clob pattern, long start)
throws SQLException; }
Методы объекта
getAsciiStream ( )
public InputStream getAsciiStream() throws SQLException
Описание. Позволяет осуществлять доступ к данным Clob через поток ASCII.
getCharacterStream( )
public Reader getCharacterStream() throws SQLException
Описание. Позволяет осуществлять доступ к данным Clob через поток Unicode.
getSubString( )
public String getSubString(long pos, int count) throws SQLException
Описание. Возвращает подстроку Clob, начиная с указанной позиции, длиной, определяемой значением count.
length( )
public long length() throws SQLException
Описание. Возвращает количество символов в Clob. position( )
public long position(String pattern, long start) throws SQLException;
public long position(Clob pattern, long start) throws SQLException;
Описание. Ищет в Clob заданную строку, начиная с указанной позиции. Если строка найдена, возвращается индекс первого ее вхождения в Clob. Если строка не найдена, метод возвращает —1.
Connection
Краткий обзор
Имя класса: java.sql.Connection
Надкласс: нет
Непосредственные подклассы: нет
Реализованные интерфейсы: нет
Доступность: JDK 1.1
Описание
Класс Connection представляет в JDBC сеанс работы с базой данных. Он предоставляет приложению объекты Statement (и его подклассы) для этого сеанса. Он также управляет транзакциями для этих команд. По умолчанию каждая команда выполняется в отдельной транзакции. Объект Connection позволяет отключить функцию Autocommit автоматического завершения транзакции. В этом случае требуется явно завершить транзакцию, иначе результаты выполнения всех команд.будут потеряны.
Сводка методов класса
public interface Connection {
static public final int TRANSACTION_NONE;
static public final int TRANSACTION_READ_UNCOMMITTED;
static public final int TRANSACTION_READ_COMMITTED;
static public final int TRANSACTION_REPEATABLE_READ;
static public final int TRANSACTION_READ_UNCOMMITTED
Описание. Этот уровень изоляции транзакций разрешает чтение незавершенных изменений одной транзакции другими транзакциями.
TRANSACTION_READ_COMMITTED
static public final int TRANSACTION_READ_COMMITTED
Описание. Этот уровень изоляции транзакций предотвращает «грязное» чтение. Иными словами, изменения, сделанные в транзакции TRANSACTION_READ_COMMITTED, невидимы другим транзакциям до ее завершения.
TRANSACTION_REPEATABLE_READ
static public final int TRANSACTION_REPEATABLE_READ
Описание. Этот уровень изоляции транзакций предотвращает «грязное» чтение и неповторяемое чтение. Неповторяемое чтение происходит, когда одна транзакция читает строку, вторая транзакция изменяет ее, а затем первая транзакция повторно читает строку, получая во второй раз другие значения.
Методы объекта
clearWarnings( )
public void clearWarnings() throws SQLException
Описание. Очищает список предупреждений, связанный с Connection, вследствие чего getWarnings() возвращает null, пока не возникнет новое предупреждение.
close ()
public void close() throws SQLException
Описание. Этот метод позволяет вручную освободить все ресурсы, такие как сетевые соединения и блокировки базы данных, связанные с данным объектом Connection. Этот метод автоматически вызывается при сборке мусора; лучше, однако, вручную закрыть Connection, если вы в нем больше не нуждаетесь.
commit ()
public void commit() throws SQLException
Описание. Этот метод делает постоянными изменения, произведенные всеми командами, связанными с данным соединением и выполненными вслед за последней командой завершения или отката транзакции. Использовать его следует только при отключенном автозавершении. Он не завершает изменения, сделанные командами, которые связаны с другими объектами Connection.
createStatement( )
public Statement createStatement() throws SQLException public
Statement createStatement(int type, int concur) throws SQLException
Описание. Метод создает объект Statement, связанный с сеансом Connection. Версия без аргументов создает объект Statement, для которого экземпляры ResultSet имеют тип только для чтения и перемещения в прямом направлении.
getAutoCommit() и setAutoCommit( )
public boolean getAutoCommit() throws SQLException
public void setAutoCommit(boolean ac) throws SQLException
Описание. По умолчанию все объекты Connection находятся в режиме автозавершения. В этом режиме каждая команда завершается сразу после выполнения. Может оказаться предпочтительнее вручную завершить серию команд в приложении как единую транзакцию. В этом случае метод setAutoCommit() используется для отключения автозавершения. Затем, после выполнения своих команд, вы вызываете commit() или rollback(), в зависимости от успеха или неуспеха транзакции.
В режиме автозавершения команда завершается, когда она выполнена, или выполняется следующая команда, в зависимости от того, что произойдет раньше. Команда, возвращающая ResultSet, выполнена, когда извлечена последняя строка или закрыт объект ResultSet. Если команда возвращает множественные результирующие набо-
ры, завершение происходит после извлечения последней строки последнего объекта ResultSet.
getCatalog() и setCatalog()
public String getCatalog() throws SQLException
public void setCatalog(String catalog) throws SQLException
Описание. Если драйвер поддерживает каталоги, то setCatalog() используется для выбора подпространства базы данных с заданным именем каталога. Если драйвер каталоги не поддерживает, запрос игнорируется.
getMetaData( )
public OatabaseMetaData
getMetaDataQ throws SQLException
Описание. Класс DatabaseMetaData предоставляет методы, описывающие таблицы базы данных, поддержку SQL, хранимые процедуры и другие сведения, относящиеся к базе данных и данному Connection, которые не относятся непосредственно к выполнению команд и извлечению результирующих наборов. Метод создает экземпляр класса DatabaseMetaData для данного Connection.
getTransactionlsolution() и setTransactionlsolution()
public int getTransactionlsolation() throws SQLException
public void setTransaction!solation(int level) throws SQLException
Описание. Устанавливает для объекта Connection текущий уровень изоляции транзакций, используя один из атрибутов класса для интерфейса Connection. Эти уровни называются TRANSACTION_NONE, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED и TRANSACTION, REPEATABLE_READ.
get TypeMap ( ) и set TypeMap ( )
public Map getTypeMap() throws SQLException
public void setTypeMap(Map map) throws SQLException
Описание. С помощью этих методов можно задать или получить специальное отображение структурированных типов SQL и индивидуальных (distinct) типов для всех команд, связанных с этим соединением.
getWarnings( )
public SQLWarning getWarnings() throws SQLException
Описание. Возвращает первое предупреждение из списка, связанного с данным объектом Connection.
isClosed()
public boolean isClosed() throws SQLExxeption
Описание. Возвращает true, если соединение Connection закрыто.
isReadOnly() и setReadOnly()
public boolean IsReadOnly() throws SQLException
public void setReadOnly(boolean ro) throws SQLException
Описание. Некоторые базы данных оптимизированы для осуществления доступа только для чтения. Метод setReadOnly() позволяет задать для Connection режим только для чтения, чтобы произошла такая оптимизация. Нельзя вызывать метод setReadOnly() во время транзакции.
nativeSQL()
public String nativeSQL(String sql) throws SQLException
Описание. Многие базы данных могут не поддерживать в действительности тот SQL, который требуется для JDBC. Этот метод позволяет приложению получить «родной» SQL базы данных для заданной строки JDBC SQL.
prepareCall()
public CallableStatement prepareCall(String sql)
throws SQLException
public CallableStatement prepareCall(String sql, int type, int concur) throws SQLException
Описание. По заданной отдельной строке SQL этот метод создает объект CallableStatement, связанный с данным сеансом Connection. Это предпочтительный способ работы с хранимыми процедурами. Версия по умолчанию (без аргументов) создает CallableStatement, который возвращает экземпляры ResultSet типа только для чтения с перемещением только вперед.
prepareStatemeni()
public PreparedStatement prepareStatement(String sql)
throws SQLException
public PreparedStatement prepareStatement(String sql, int type, int concur) throws SQLException
Описание. Создает объект PreparedStatement, связанный с данным сеансом Connection. Это предпочтительный способ работы с преком-пилированными командами SQL. Версия по умолчанию (без аргументов) создает PreparedStatement, который возвращает экземпляры ResultSet типа только для чтения с перемещением только вперед.
rollback ()
public void rollback() throws SQLException
Описание. Отменяет все изменения, произведенные командами, связанными с данным Connection и выполненными вслед за последней командой завершения или отката. Если позднее вы захотите произвести эти изменения, приложению придется заново выполнить все осуществляющие их команды. Следует использовать только в режиме отключенного автозавершения.
DatabaseMetaData
Краткий обзор
Имя класса: java. sql. DatabaseMetaData
Надкласс: нет
Непосредственные подклассы: нет
Реализованные интерфейсы: нет
Доступность: введен в JDK 1.1
Описание
Этот класс предоставляет обширную информацию о базе данных, с которой связан объект Connection. Во многих случаях данные возвращаются в виде объектов JDBC ResultSet. Если база данных не поддерживает метаданные некоторого типа, DatabaseMetaData возбуждает SQLException.
Методы DatabaseMetaData принимают в качестве аргументов строковые шаблоны, в которых специальные символы имеют определенное значение. % соответствует любой подстроке длиной 0 или более символов, а символ _ соответствует одному любому символу. Вместо строковых шаблонов возможна передача null в качестве аргументов, что означает исключение критерия аргумента из поиска.
Сводка методов класса
public interface DatabaseMetaData {
static public final int bestRowTemporary;
static public final int bestRowTransaction;
static public final int bestRowSession;
static public final int bestRowUnknown;
static public final int bestRowNotPseudo;
static public final int bestRowPseudo;
static public final int columnNoNulls;
static public final int columnNullable;
static public final int columnNullablellnknown;
static public final int importedKeyCascade;
static public final int importedKeyRestrict;
static public final int importedKeySetNull;
static public final int importedKeyNoAction;
static public final int importedKeySetDefault;
static public final int importedKeylnitiallyDeferred;
static public final int importedKeylnitiallylmmediate;