简述
JDBC 驱动程序将 Java 数据类型转换为适当的 JDBC 类型,然后再将其发送到数据库。它对大多数数据类型使用默认映射。例如,Java int 被转换为 SQL INTEGER。创建默认映射是为了提供驱动程序之间的一致性。
下表总结了在调用 PreparedStatement 或 CallableStatement 对象的 setXXX() 方法或 ResultSet.updateXXX() 方法时,Java 数据类型转换为的默认 JDBC 数据类型。
| SQL |
JDBC/Java |
setXXX |
updateXXX |
| VARCHAR |
java.lang.String |
setString |
updateString |
| CHAR |
java.lang.String |
setString |
updateString |
| LONGVARCHAR |
java.lang.String |
setString |
updateString |
| BIT |
boolean |
setBoolean |
updateBoolean |
| NUMERIC |
java.math.BigDecimal |
setBigDecimal |
updateBigDecimal |
| TINYINT |
byte |
setByte |
updateByte |
| SMALLINT |
short |
setShort |
updateShort |
| INTEGER |
int |
setInt |
updateInt |
| BIGINT |
long |
setLong |
updateLong |
| REAL |
float |
setFloat |
updateFloat |
| FLOAT |
float |
setFloat |
updateFloat |
| DOUBLE |
double |
setDouble |
updateDouble |
| VARBINARY |
byte[ ] |
setBytes |
updateBytes |
| BINARY |
byte[ ] |
setBytes |
updateBytes |
| DATE |
java.sql.Date |
setDate |
updateDate |
| TIME |
java.sql.Time |
setTime |
updateTime |
| TIMESTAMP |
java.sql.Timestamp |
setTimestamp |
updateTimestamp |
| CLOB |
java.sql.Clob |
setClob |
updateClob |
| BLOB |
java.sql.Blob |
setBlob |
updateBlob |
| ARRAY |
java.sql.Array |
setARRAY |
updateARRAY |
| REF |
java.sql.Ref |
SetRef |
updateRef |
| STRUCT |
java.sql.Struct |
SetStruct |
updateStruct |
JDBC 3.0 增强了对 BLOB、CLOB、ARRAY 和 REF 数据类型的支持。ResultSet 对象现在具有 updateBLOB()、updateCLOB()、updateArray() 和 updateRef() 方法,使您能够直接操作服务器上的相应数据。
setXXX() 和 updateXXX() 方法使您能够将特定的 Java 类型转换为特定的 JDBC 数据类型。方法 setObject() 和 updateObject() 使您能够将几乎任何 Java 类型映射到 JDBC 数据类型。
ResultSet 对象为每种数据类型提供了相应的 getXXX() 方法来检索列值。每种方法都可以与列名或按其顺序位置一起使用。
| SQL |
JDBC/Java |
setXXX |
getXXX |
| VARCHAR |
java.lang.String |
setString |
getString |
| CHAR |
java.lang.String |
setString |
getString |
| LONGVARCHAR |
java.lang.String |
setString |
getString |
| BIT |
boolean |
setBoolean |
getBoolean |
| NUMERIC |
java.math.BigDecimal |
setBigDecimal |
getBigDecimal |
| TINYINT |
byte |
setByte |
getByte |
| SMALLINT |
short |
setShort |
getShort |
| INTEGER |
int |
setInt |
getInt |
| BIGINT |
long |
setLong |
getLong |
| REAL |
float |
setFloat |
getFloat |
| FLOAT |
float |
setFloat |
getFloat |
| DOUBLE |
double |
setDouble |
getDouble |
| VARBINARY |
byte[ ] |
setBytes |
getBytes |
| BINARY |
byte[ ] |
setBytes |
getBytes |
| DATE |
java.sql.Date |
setDate |
getDate |
| TIME |
java.sql.Time |
setTime |
getTime |
| TIMESTAMP |
java.sql.Timestamp |
setTimestamp |
getTimestamp |
| CLOB |
java.sql.Clob |
setClob |
getClob |
| BLOB |
java.sql.Blob |
setBlob |
getBlob |
| ARRAY |
java.sql.Array |
setARRAY |
getARRAY |
| REF |
java.sql.Ref |
SetRef |
getRef |
| STRUCT |
java.sql.Struct |
SetStruct |
getStruct |