java preparedstatement null,PreparedStatement setnull方法中Types.INTEGER和Types.NULL之间的区别...

What is the difference between the following statements.

PreparedStatement.setNull(1, java.sql.Types.NULL);

and

PreparedStatement.setNull(1, java.sql.Types.INTEGER);

解决方案

The first instructs the driver to send the null value as NULL-type, while the other as INTEGER-type. This is sometimes necessary in conditions like ? IS NULL OR someIntegerColumn = ? The first param is of a NULL-type while the second is of an INTEGER-type.

However the exact difference depends on the database driver: some databases/drivers always use the type specified by the server on prepare (and the driver converts from other types to that type), while others either require or allow to communicate in the types specified application side (the database then converts to the actual local type). This might even be necessary if the server doesn't support server side prepared statement.

There may actually be subtle implications for specifying a type: maybe one leads to a conversion error, while the other doesn't, or a subsequent conversion behaves different because of type conversions rules. I am not actually aware of this happening in practice.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值