JDBC写PreparedStatement设置空值问题

哭与笑的碰撞 2015-11-25 10:52:33
	public boolean setStmt(PreparedStatement stmt,Object[] params) {
try {
if (params == null) {
return true;
}
for (int i = 0; i < params.length; i++) {
if (params[i] != null) {
stmt.setObject(i + 1, params[i]);
} else {
stmt.setNull(i + 1, Types.NULL); //Sqlserver设置空值时,sqlType用哪个可以通用?
}
}
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return true;
}

由于前台jsp界面需要输入的字段过多,而且类型也有多种,所以写了个通用的预编译方法,但遇到个问题:
如上代码所示,Sqlserver设置空值时,sqlType用哪个可以通用?
也就是说,Sqlserver有varchar,date,int等多种类型时,sqlType怎么一次设置就可以通用?
...全文
423 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
setNull的方法原型:PreparedStatement.setNull(int index, int sqlType),其中第二个参数使用sqlType,应该用java.sql.Types中的类型来设置。 比如,若设置某个类型为Double字段为空,则代码为:setNull(1,Types.DOUBLE); 若设置某个类型为Date字段为空,则代码为:setNull(1,Types.DATE); 但有没有一个通用的Types来代替不同类型的字段?
  • 打赏
  • 举报
回复
就没有人知道的吗?大神何在?
  • 打赏
  • 举报
回复
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2015-11-25 10:52
社区公告
暂无公告