比如一个场景,我现在在页面上选择了上千条记录,根据ID进行删除.
当然1.首先想到的是根据这些ID,循环生成Sql语句,一条一条删,但这样效率太差.
2.我想把这些ID用逗号串起来,还后使用IN(Id1,id2),这样虽然好一点,但是呢,好像oracle中IN不能超过1000个,而且IN的性能在oracle中本来就低.
不知各位朋友有什么好的办法,在数据库和java中实现都可.
当然1.首先想到的是根据这些ID,循环生成Sql语句,一条一条删,但这样效率太差.
2.我想把这些ID用逗号串起来,还后使用IN(Id1,id2),这样虽然好一点,但是呢,好像oracle中IN不能超过1000个,而且IN的性能在oracle中本来就低.
不知各位朋友有什么好的办法,在数据库和java中实现都可.
conn.setAutoCommit(false);
PreparedStatement pst = con.prepareStatement("delete from xxtable where id=?");
for(int i = 0; i < 行数; i++){
pst.setString(1, 值[i]);
//把一个SQL命令加入命令列表
pst.addBatch();
}
//执行批量更新
pst.executeBatch();
conn.commit();