| Тип данных SQL | Тип данных Java | Описание |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR | String | Символьные строки |
NUMERIC, DECIMAL | BigDecimal | Числа с фиксированной точкой |
BIT, BOOLEAN | boolean | Логические значения |
TINYINT | byte | Целое число от -128 до 127 |
SMALLINT | short | Целое число от -32768 до 32767 |
INTEGER | int | Целое число |
BIGINT | long | Большое целое число |
REAL | float | Число с плавающей точкой одинарной точности |
FLOAT, DOUBLE | double | Число с плавающей точкой двойной точности |
BINARY, VARBINARY, LONGVARBINARY | byte[] | Двоичные данные |
DATE | java.sql.Date | Дата (год, месяц, день) |
TIME | java.sql.Time | Время (час, минута, секунда) |
TIMESTAMP | java.sql.Timestamp | Дата и время с миллисекундами |
BLOB | java.sql.Blob | Двоичный объект большого размера |
CLOB | java.sql.Clob | Символьный объект большого размера |
ARRAY | java.sql.Array | Массив значений |
STRUCT | java.sql.Struct | Структурированный тип |
REF | java.sql.Ref | Ссылка на структурированный тип |
DATALINK | java.net.URL | Ссылка на внешний ресурс |
JAVA_OBJECT | Object | Сериализованный объект Java (зависит от реализации) |
ROWID | java.sql.RowId | Идентификатор строки (зависит от СУБД) |
NCHAR, NVARCHAR, LONGNVARCHAR | String | Национализируемые символьные строки |
NCLOB | java.sql.NClob | Национализируемый символьный объект большого размера |
SQLXML | java.sql.SQLXML | XML-данные |
JDBC (Java Database Connectivity) специфицирует стандартные SQL-типы данных в классе java.sql.Types. Эти типы данных представляют собой числовые константы. JDBC-драйверы маппят эти SQL-типы данных на подходящие типы данных Java при чтении данных из базы (например, с использованием методов getXXX() класса ResultSet) и при записи данных в базу (например, с использованием методов setXXX() класса PreparedStatement).
Связь определяется тем, как JDBC-драйвер конкретной базы данных реализует отображение между внутренними типами данных базы и стандартными java.sql.Types, а затем на типы данных Java. Это отображение документировано в спецификации JDBC и может незначительно отличаться между драйверами, хотя основные маппинги, приведенные в таблице, являются стандартными.
Пример получения данных из ResultSet:
java
Пример установки параметров в PreparedStatement:
java
JDBC старается обеспечить максимальную совместимость, но для специфических или вендорно-зависимых типов данных могут потребоваться особые подходы или использование методов getObject() / setObject() с последующим приведением типов или проверкой с помощью instanceof.