1 jdbc 插入 null 值
使用jdbc插入null值
String sql = "insert into person (name,age) values(?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,p.getName);
ps.setInt(2,p.getAge);
此时,如果p的age为null,设值的时候会报错。
使用如下写法插入null值
if(p.getName !=null){
ps.setInt(2,p.getName );
}else{
ps.setNull(2, Types.NULL);
}
2 jdbc 查询 null 值
使用jdbc 查询时 一般使用以下方法:
-- 以下方法均返回 基础数据类型,但基础数据类型是有默认值的,当 id 在数据库中 为null 时,使用以下的查询,将会使用基础数据类型的默认值,
rs.getString("");
rs.getFloat("");
rs.getInt("");
rs.getLong("");
那么我们如何查询数据库中null 呢
我们可以使用
-- 当数据 数据库中int 类型值为null 时,可以用以下方法
Object idObj = rs.getObject("id");
System.out.println(idObj instanceof Integer);
System.out.println("id = " + id);
附:jdbc 数据类型与java 和数据库字段之间的关系
jdbc类型映射到java类型
JDBC Type | Java Type |
---|---|
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | boolean |
BOOLEAN | 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 |
CLOB | java.sql.Clob |
BLOB | java.sql.Blob |
ARRAY | java.sql.array |
DISTINCT | Mapping of underlying type |
STRUCT | java.sql.Struct |
REF | java.sql.Ref |
DATALINK | java.net.URL |
JAVA_OBJECT | Underlying Java class |
ROWID | java.sql.RowId |
NCHAR | String |
NVARCHAR | String |
LONGNVARCHAR | String |
NCLOB | java.sql.NClob |
SQLXML | java.sql.SQLXML |
jdbc类型映射到java对象
JDBC Type | Java Object Type |
---|---|
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | Boolean |
BOOLEAN | 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 |
DISTINCT | Object type of underlying type |
CLOB | java.sql.Clob |
BLOB | java.sql.Blob |
ARRAY | java.sql.Array |
STRUCT | java.sql.Struct or java.sql.SQLData |
REF | java.sql.Ref |
DATALINK | java.net.URL |
JAVA_OBJECT | Underlying Java class |
ROWID | java.sql.RowId |
NCHAR | String |
NVARCHAR | String |
LONGNVARCHAR | String |
NCLOB | java.sql.NClob |
SQLXML | java.sql.SQLXML |