private static final String DELETESQL = "DELETE FROM table1";
private static final String ALTERSQL = "ALTER TABLE table1 AUTO_INCREMENT = 1";
private static final String INSERTSQL = "INSERT INTO `table1` (`interset_name`) VALUES (?);"
关于jdbc事务这块,网络上也是一找一大片,这里只是记录我遇到的问题。
在执行如下操作时:
connection.setAutoCommit(false);
statement.execute(DELETESQL);
statement.execute(ALTERSQL);
statement.execute(INSERTSQL);
connection.rollback();
并不能很好的回滚,我以为了好多情况。后来才发现原来是:执行了
ALTERSQL
这条sql语句之后,就不能正常回滚了。为什么?
原来数据库中自动增长的key是不会执行回滚操作的。所以如果想回滚就不要执行这条sql语句了。