Spec-Zone.ru › MySQL Connectors 1.0

6.5 Типы Java, JDBC и MySQL

MySQL Connector/J гибко обрабатывает преобразования между типами данных MySQL и Java.

В общем случае, любой тип данных MySQL может быть преобразован в java.lang.String, а любой числовой тип может быть преобразован в любой числовой тип Java, хотя могут произойти округление, переполнение или потеря точности.

Connector/J выдает предупреждения или вызывает исключения DataTruncation, как требуется спецификацией JDBC, если соединение не было настроено на это с помощью свойства jdbcCompliantTruncation и установкой значения на false.

Преобразования, которые всегда гарантированно работают, перечислены в следующей таблице. Первый столбец содержит один или несколько типов данных MySQL, а второй столбец содержит один или несколько типов Java, в которые типы MySQL могут быть преобразованы.

Таблица 6.19 Возможные преобразования между типами данных MySQL и Java

Таблица 6.19 Возможные преобразования между типами данных MySQL и Java
Эти типы данных MySQL Могут всегда быть преобразованы в эти типы Java
CHAR, VARCHAR, BLOB, TEXT, ENUM, and SET java.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINT java.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal
DATE, TIME, DATETIME, TIMESTAMP java.lang.String, java.sql.Date, java.sql.Timestamp

Примечание

Округление, переполнение или потеря точности могут произойти, если вы выберете тип числового данных Java с меньшей точностью или емкостью, чем тип данных MySQL, который вы преобразуете.

Метод ResultSet.getObject() использует преобразования типов между MySQL и Java типами, следуя спецификации JDBC при необходимости. Значения, возвращаемые ResultSetMetaData.GetColumnTypeName() и ResultSetMetaData.GetColumnClassName(), показаны в таблице ниже. Для получения дополнительной информации о типах JDBC см. справочник по классу.

Таблица 6.20 Типы MySQL и значения возвращаемых ResultSetMetaData.GetColumnTypeName() и ResultSetMetaData.GetColumnClassName()

Таблица 6.20 Типы MySQL и значения возвращаемых ResultSetMetaData.GetColumnTypeName() и ResultSetMetaData.GetColumnClassName()
Имя типа MySQL Значение возвращаемое GetColumnTypeName Значение возвращаемое GetColumnClassName
BIT(1) BIT java.lang.Boolean
BIT( > 1) BIT byte[]
TINYINT(1) SIGNED, BOOLEAN

Если tinyInt1isBit=true и transformedBitIsBoolean=false: BIT

Если tinyInt1isBit=true и transformedBitIsBoolean=true: BOOLEAN

Если tinyInt1isBit=false: TINYINT

Если tinyInt1isBit=true и transformedBitIsBoolean=false: java.lang.Boolean

Если tinyInt1isBit=true и transformedBitIsBoolean=true: java.lang.Boolean

Если tinyInt1isBit=false: java.lang.Integer

TINYINT( > 1) SIGNED TINYINT java.lang.Integer
TINYINT( any ) UNSIGNED TINYINT UNSIGNED java.lang.Integer
SMALLINT[(M)] [UNSIGNED] SMALLINT [UNSIGNED] java.lang.Integer (независимо от того, является ли он UNSIGNED или нет)
MEDIUMINT[(M)] [UNSIGNED] MEDIUMINT [UNSIGNED] java.lang.Integer (независимо от того, является ли он UNSIGNED или нет)
INT,INTEGER[(M)] INTEGER java.lang.Integer
INT,INTEGER[(M)] UNSIGNED INTEGER UNSIGNED java.lang.Long
BIGINT[(M)] BIGINT java.lang.Long
BIGINT[(M)] UNSIGNED BIGINT UNSIGNED java.math.BigInteger
FLOAT[(M,D)] FLOAT java.lang.Float
DOUBLE[(M,B)] [UNSIGNED] DOUBLE java.lang.Double (независимо от того, является ли он UNSIGNED или нет)
DECIMAL[(M[,D])] [UNSIGNED] DECIMAL java.math.BigDecimal (независимо от того, является ли он UNSIGNED или нет)
DATE DATE java.sql.Date
DATETIME DATETIME java.time.LocalDateTime
TIMESTAMP[(M)] TIMESTAMP java.sql.Timestamp
TIME TIME java.sql.Time
YEAR[(2|4)] YEAR Если свойство конфигурации yearIsDateType установлено в значение false, то возвращаемый тип объекта — java.sql.Short. Если установлено значение true (значение по умолчанию), то возвращаемый объект имеет тип java.sql.Date.
CHAR(M) CHAR java.lang.String
VARCHAR(M) VARCHAR java.lang.String
BINARY(M), CHAR(M) BINARY BINARY byte[]
VARBINARY(M), VARCHAR(M) BINARY VARBINARY byte[]
BLOB BLOB byte[]
TINYBLOB TINYBLOB byte[]
MEDIUMBLOB MEDIUMBLOB byte[]
LONGBLOB LONGBLOB byte[]
TEXT TEXT java.lang.String
TINYTEXT TINYTEXT java.lang.String
MEDIUMTEXT MEDIUMTEXT java.lang.String
LONGTEXT LONGTEXT java.lang.String
JSON JSON java.lang.String
GEOMETRY GEOMETRY byte[]
VECTOR(M) (только поддерживается при использовании MySQL Enterprise Server) VECTOR byte[]
ENUM('value1','value2',...) CHAR java.lang.String
SET('value1','value2',...) CHAR java.lang.String

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-j-en/connector-j-reference-type-conversions.html

Spec-Zone.ru

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