您的位置:首页 > 编程语言 > Java开发

数据库类型与java数据类型的对应关系

2018-03-09 17:28 357 查看

数据库类型与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
BINARY
byte[]
VARBINARY
byte[]
LONGVARBINARY
byte[]
DATE
java.sql.Date
TIME
java.sql.Time
TIMESTAMP
java.sql.Timestamp
 

4. Java Object 类型映射到 JDBC 类型

Java Object 类型JDBC 类型
String
VARCHAR 或 LONGVARCHAR
java.math.BigDecimal
NUMERIC
Boolean
BIT
Integer
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
 值也一样。 

5. 由 setObject 所进行的转换

setObject 
 T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
R
E
A
L
F
L
O
A
T
D
O
U
B
L
E
D
E
C
I
M
A
L
N
U
M
E
R
I
C
B
I
T
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
Stringxxxxxxxxxxxxxxxxxxx
java.math.BigDecimalxxxxxxxxxxxxx      
Booleanxxxxxxxxxxxxx      
Integerxxxxxxxxxxxxx      
Longxxxxxxxxxxxxx      
Floatxxxxxxxxxxxxx      
Doublexxxxxxxxxxxxx      
byte[]             xxx   
java.sql.Date          xxx   x x
java.sql.Time          xxx    x 
java.sql.Time- stamp          xxx   xxx
 从 Java object 类型到 JDBC 类型的转换。 

6. 由 ResultSet.getXXX 方法检索的 JDBC 类型

"x" 表示该方法可以检索 JDBC 类型。"X" 表示建议使用该方法来检索该 JDBC 类型。 
 T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
R
E
A
L
F
L
O
A
T
D
O
U
B
L
E
D
E
C
I
M
A
L
N
U
M
E
R
I
C
B
I
T
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
getByteXxxxxxxxxxxxx      
getShortxXxxxxxxxxxxx      
getIntxxXxxxxxxxxxx      
getLongxxxXxxxxxxxxx      
getFloatxxxxXxxxxxxxx      
getDoublexxxxxXXxxxxxx      
getBigDecimalxxxxxxxXXxxxx      
getBooleanxxxxxxxxxXxxx      
getStringxxxxxxxxxxXXxxxxxxx
getBytes             XXx   
getDate          xxx   X x
getTime          xxx    Xx
getTimestamp          xxx   x X
getAsciiStream          xxXxxx   
getUnicodeStream          xxXxxx   
getBinaryStream             xxX   
getObjectxxxxxxxxxxxxxxxxxxx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: