对于Statement.executeBatch(),只要批处理的一个sql执行出错,就抛出SQLException,后面的sql语句就不执行了。
我想让它出错了也继续执行,该怎么做?
我的目的是:批量插入操作
我把一个字段设置成Unique索引,如果重复就不插入了。如果不用Unique,就要自己先select判断是否重复,这样要加入是事务或锁,麻烦也影响速度。
我该怎么处理好?
对于Statement.executeBatch(),只要批处理的一个sql执行出错,就抛出SQLException,后面的sql语句就不执行了。
我想让它出错了也继续执行,该怎么做?
我的目的是:批量插入操作
我把一个字段设置成Unique索引,如果重复就不插入了。如果不用Unique,就要自己先select判断是否重复,这样要加入是事务或锁,麻烦也影响速度。
我该怎么处理好?
你可以批量Unique检查,在后台select判断是否重复。把重复的数据从不插入,把不重复的插入,插入完毕后抛一个自定义的插入重复异常(后台接受到这个异常时不能回滚,否则其他的数据就白查了),给用户在前台一个提示"XXX数据重复插入失败" 。