我已经创建了一个PreparedStatement并在bactch中添加了几个数据
PreparedStatement ps = conn.PreparedStatement("INSERT into table (a, b) values (?, ?)";
ps.setInt(1, 1);
ps.setInt(2, 2);
ps.addBatch
ps.setInt(1, 4);
ps.setInt(2, 5);
ps.addBatch
现在我执行ps。我得到了结果,现在让我们说ps失败了,然后我想逐个插入记录而不是批处理模式。
如何提取准备好的语句,我可以获得大小,但不知道如何获取记录?
答案 0 :(得分:1)
首先,您是否可以逐个插入记录?如果您的DBMS支持事务 - 大多数现代事务 - 您可以将所有插入捆绑到一个原子事务中,并且对于数据库的其他用户,它看起来就像您一次添加它们一样(参见下面的伪代码)。
connection.setAutoCommit(false);
try{
insert(1,2);
}
catch(Exception e){
System.out.println("1, 2 didn't work");
}
try{
insert(4,5);
}
catch(Exception e){
System.out.println("4, 5 didn't work");
}
connection.commit();