xxxService.executeUpdate("update Student t set t.sName=?,t.addr=?,t.remark=?,t.sAge=? where t.id=?",
new Object[]{sname,addr,remark,sage,sId});
如上是我自己写的方法,内部最终调用的就是Query.executeQuery(),后面的Object数组会在方法内进行正确绑定;
问题:
在四个参数均有值传入时更新是正常的,但我设计年龄是可以不填的,如此,如果某人在更新页面把已有的年龄删除,文本框留空,那么传到后台后sage会是null,再执行executeUpdate时就会报错,什么“需要的是number,得到的是byte”;
需要的效果:
我需要的效果其实很简单,就是如果传过来的年龄为null,在数据库中就什么也不存(不是0或者什么-1之类的标量),怎么实现呢?我只能用executeUpdate,不能用全对象更新(update(Student s));
高手帮忙啊。。。。。。。
------解决方案--------------------
if(sage==null){
xxxService.executeUpdate("update Student t set t.sName=?...t.sAge=null....., new Object[]{sname,addr,remark,sId});
}else{
你原来的代码
}