Middle
40
questionbank

Перечислите основные типы данных, используемые в JDBC, и объясните, как они связаны с типами данных Java.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech
Тип данных SQLТип данных JavaОписание
CHAR, VARCHAR, LONGVARCHARStringСимвольные строки
NUMERIC, DECIMALBigDecimalЧисла с фиксированной точкой
BIT, BOOLEANbooleanЛогические значения
TINYINTbyteЦелое число от -128 до 127
SMALLINTshortЦелое число от -32768 до 32767
INTEGERintЦелое число
BIGINTlongБольшое целое число
REALfloatЧисло с плавающей точкой одинарной точности
FLOAT, DOUBLEdoubleЧисло с плавающей точкой двойной точности
BINARY, VARBINARY, LONGVARBINARYbyte[]Двоичные данные
DATEjava.sql.DateДата (год, месяц, день)
TIMEjava.sql.TimeВремя (час, минута, секунда)
TIMESTAMPjava.sql.TimestampДата и время с миллисекундами
BLOBjava.sql.BlobДвоичный объект большого размера
CLOBjava.sql.ClobСимвольный объект большого размера
ARRAYjava.sql.ArrayМассив значений
STRUCTjava.sql.StructСтруктурированный тип
REFjava.sql.RefСсылка на структурированный тип
DATALINKjava.net.URLСсылка на внешний ресурс
JAVA_OBJECTObjectСериализованный объект Java (зависит от реализации)
ROWIDjava.sql.RowIdИдентификатор строки (зависит от СУБД)
NCHAR, NVARCHAR, LONGNVARCHARStringНационализируемые символьные строки
NCLOBjava.sql.NClobНационализируемый символьный объект большого размера
SQLXMLjava.sql.SQLXMLXML-данные

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.