最近在web开发过程中遇到了一个错误困扰了我两天,Could not execute JDBC batch update,在进行数据库中表的更新时 总是报这个异常,网上说是不能进行批量更新,可是我的表命名就可以啊,这个问题一直困扰我,并且下面异常的Caused by:报的空指针,可是我的数据明明传了进去,这就让我更疑惑了。后来经过我无数次的搜索之后终于知道了错误我的代码
session.put("mid",model.getMid());
introduceService.delete(model.getMid());
signService.delete(model.getMid());
matchService.delete(model.getMid());
因为我同时进行了三个删除操作,这在数据库的操作中涉及到事务的操作,在上一个操作完成后但是还没提交,如果到下一个操作如果出现故障,事务就会出现异常,所以才会包那个错误,不能批量操作,并不是数据库表的问题,所以遇到这种情况只需要把上面的代码改为
session.put("mid",model.getMid());
introduceService.delete(model.getMid());
hibernateTemplate.flush();
signService.delete(model.getMid());
hibernateTemplate.flush();
matchService.delete(model.getMid());在每个操作之间加一条 hibernateTemplate.flush();语句就可以了 hibernateTemplate.flush();语句的错误就是在你进行往一个操作后提交(相当于commit)
这也是我自己研究的,现在分享一下,希望可以帮到大家