JDBC写PreparedStatement设置空值问题

andy灬前 软件工程师  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怎么一次设置就可以通用?
...全文
267 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
andy灬前 2015-11-25
setNull的方法原型:PreparedStatement.setNull(int index, int sqlType),其中第二个参数使用sqlType,应该用java.sql.Types中的类型来设置。 比如,若设置某个类型为Double字段为空,则代码为:setNull(1,Types.DOUBLE); 若设置某个类型为Date字段为空,则代码为:setNull(1,Types.DATE); 但有没有一个通用的Types来代替不同类型的字段?
回复
andy灬前 2015-11-25
就没有人知道的吗?大神何在?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-11-25 10:52
社区公告
暂无公告