jdbc 使用的一些记录

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 TypeJava Type
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITboolean
BOOLEANboolean
TINYINTbyte
SMALLINTshort
INTEGERint
BIGINTlong
REALfloat
FLOATdouble
DOUBLEdouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp
CLOBjava.sql.Clob
BLOBjava.sql.Blob
ARRAYjava.sql.array
DISTINCTMapping of underlying type
STRUCTjava.sql.Struct
REFjava.sql.Ref
DATALINKjava.net.URL
JAVA_OBJECTUnderlying Java class
ROWIDjava.sql.RowId
NCHARString
NVARCHARString
LONGNVARCHARString
NCLOBjava.sql.NClob
SQLXMLjava.sql.SQLXML

jdbc类型映射到java对象

JDBC TypeJava Object Type
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITBoolean
BOOLEANBoolean
TINYINTInteger
SMALLINTInteger
INTEGERInteger
BIGINTLong
REALFloat
FLOATDouble
DOUBLEDouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp
DISTINCTObject type of underlying type
CLOBjava.sql.Clob
BLOBjava.sql.Blob
ARRAYjava.sql.Array
STRUCTjava.sql.Struct or java.sql.SQLData
REFjava.sql.Ref
DATALINKjava.net.URL
JAVA_OBJECTUnderlying Java class
ROWIDjava.sql.RowId
NCHARString
NVARCHARString
LONGNVARCHARString
NCLOBjava.sql.NClob
SQLXMLjava.sql.SQLXML
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值