#JDBC与Java数据类型映射关系
本文将介绍在setObejct()方法中JDBC数据类型和Java数据类型的映射关系。
(1)
JDBC类型 \Java类型 | boolean | String | byte,short ,int,long | float, double | Big Decimal |
---|---|---|---|---|---|
BIT | √ 注3 | √ | √注3 | × | √ |
BOOLEAN | √ | √注1 | √ 注2 | × | × |
CHAR,VARCHAR,NCHAR,NVARCHAR | √ | √ | √ | √ | √ |
DATE | × | √ | × | × | × |
TIMESTAMP | × | √ | × | × | × |
TIME | × | √ | × | × | × |
TINYINT, SMALLINT, INTEGER,BIGINT | √ | √ | √ | √ | √ |
REAL (note1) (Server: FLOAT ) | √ | √ | √ | √ | √ |
FLOAT, DOUBLE (note1) (Server: DOUBLE) | √ | √ | √ | √ | √ |
DECIMAL, NUMERIC(note1) (Server: NUMBER) | √ | √ | √ | √ | √ |
(2)
JDBC类型 \Java类型 | Time | Date | Timestamp | byte[] | Local Time | Local DateTime | Local Date |
---|---|---|---|---|---|---|---|
BIT | × | × | × | √ | × | × | × |
BOOLEAN | × | × | × | × | × | × | × |
CHAR,VARCHAR,NCHAR,NVARCHAR | √ | √ | √ | × | × | × | × |
DATE | √ | √ | √ | × | × | × | √ |
TIMESTAMP | √ | √ | √ | × | × | √ | × |
TIME | √ | √ | √ | × | √ | × | × |
TINYINT, SMALLINT, INTEGER,BIGINT | × | × | × | × | × | × | × |
REAL (note1) (Server: FLOAT ) | × | × | × | × | × | × | × |
FLOAT, DOUBLE (note1) (Server: DOUBLE) | × | × | × | × | × | × | × |
DECIMAL, NUMERIC(note1) (Server: NUMBER) | × | × | × | × | × | × | × |
注1:
BOOLEAN字符串形式支持:
- 'TRUE'/'FALSE'
- 'ON'/'OFF'
- 'YES'/'NO'
- 'T'/'F'
- 转数值的字符'1'/'0'
注2:
BOOLEAN整型数值形式支持非0转换为TRUE,0转换为FALSE。
注3:
BIT类型可以转换为整型,但有溢出判定;其与BOOLEAN转换时,1转换为TRUE,全0转换为FALSE,其他数值报溢出。
注4:(仅用于setObject)
note1:表示数据库定义类型与JDBC定义类型映射名称不一样。