JDBC中如何设定空值?

wangqiyy 2003-05-10 03:55:34
INSERT INTO AA(FIELD1,FIELD2) VALUES(?,?)

preparedStatement.setString(1,"aa");
preparedStatement.setString(1,java.sql.Types.NULL);

为什么不正确?

...全文
207 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kesney 2003-05-10
  • 打赏
  • 举报
回复
upup!!!
嗬嗬,我也学到了一招!
wangqiyy 2003-05-10
  • 打赏
  • 举报
回复
肥水不流外人田,我自己解决了。

上面写的这一句问错了,
preparedStatement.setString(1,java.sql.Types.NULL);
这确的问法:
preparedStatement.setNull(1,java.sql.Types.NULL);

正确的解答:
由于有的JDBC驱动不支持
preparedStatement.setNull(idx,java.sql.Types.NULL);
例如SqlServer的驱动(微软网站提供的),
所以必须使用这样的方法:
preparedStatement.setNull(1,java.sql.Types.VARCHAR);
FIELD2的类型是varchar(SqlServer)/varchar2(ORACLE)
就是说第二个参数实际指的是参数的正确类型。



62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧