我的事务没有con.commit();但是下面的 insert还是没有回滚呢?我直接用con.rollback();,但是还是insert了2条数据到数据库,为什么没有回滚啊?
con.setAutoCommit(false);
st.executeUpdate("insert account(name,add) values('yusiyuan',123)");
st.executeUpdate("insert account(name,add) values('xiaoyu',321)");
con.rollback();
con.setAutoCommit(true);
mysql数据库中还是插入了2条数据了。
con.setAutoCommit(false);
st.executeUpdate("insert account(name,add) values('yusiyuan',123)");
st.executeUpdate("insert account(name,add) values('xiaoyu',321)");
con.rollback();
con.setAutoCommit(true);
mysql数据库中还是插入了2条数据了。
对!你使用mysql数据库的使用想要支持事务,需要将表的类型修改成为InnoDB类型。才能使用事务。
然后再初始化st:Statement st = con.createStatement()
最后再适应st执行sql语句: st.executeUpdate("insert account(name,add) values('xiaoyu',321)");
con.rollback();可以调整代码如下:con.setAutoCommit(false);
Statement st = con.createStatement();
st.executeUpdate("insert account(name,add) values('yusiyuan',123)");
st.executeUpdate("insert account(name,add) values('xiaoyu',321)");
con.rollback();