数据库类型与java数据类型的对应关系
1. 从 JDBC 类型映射到 Java 类型
JDBC 类型 | Java 类型 |
---|---|
CHAR |
String |
VARCHAR |
String |
LONGVARCHAR |
String |
NUMERIC |
java.math.BigDecimal |
DECIMAL |
java.math.BigDecimal |
BIT |
boolean |
TINYINT |
byte |
SMALLINT |
short |
INTEGER |
int |
BIGINT |
long |
REAL |
float |
FLOAT |
double |
DOUBLE |
double |
BINARY |
byte[] |
VARBINARY |
byte[] |
LONGVARBINARY |
byte[] |
DATE |
java.sql.Date |
TIME |
java.sql.Time |
TIMESTAMP |
java.sql.Timestamp |
2.从 Java 类型映射到 JDBC 类型
Java 类型 | JDBC 类型 |
---|---|
String |
VARCHAR 或 LONGVARCHAR |
java.math.BigDecimal |
NUMERIC |
boolean |
BIT |
byte |
TINYINT |
short |
SMALLINT |
int |
INTEGER |
long |
BIGINT |
float |
REAL |
double |
DOUBLE |
byte[] |
VARBINARY 或 LONGVARBINARY |
java.sql.Date |
DATE |
java.sql.Time |
TIME |
java.sql.Timestamp |
TIMESTAMP |
String 类型的映射通常是 VARCHAR
,但如果所给的值超出了驱动程序对 VARCHAR
值所限定的极限,则将转换为 LONGVARCHAR
类型。对 byte[]
、VARBINARY
及 LONGVARBINARY
值也一样。
3. 从 JDBC 类型到 Java Object 类型的映射
由于 Java 内置类型(例如 boolean
和 int
)不是 Object
的子类型,因此对于 getObject
/setObject
方法,从 JDBC 类型到 Java object 类型的映射稍有不同。此种映射如下表所示:
JDBC 类型 | Java Object 类型 |
---|---|
CHAR |
String |
VARCHAR |
String |
LONGVARCHAR |
String |
NUMERIC |
java.math.BigDecimal |
DECIMAL |
java.math.BigDecimal |
BIT |
Boolean |
TINYINT |
Integer |
SMALLINT |
Integer |
INTEGER |
Integer |
BIGINT |
Long |
REAL |
Float |
FLOAT |
Double |
DOUBLE |
Double |