提交(commit)对数据库做的改变¶
对于缺省情况下,DML操作(INSERT,UPDATE,DELETE)一旦被执行,将自动被提交。这就是JDBC驱动中的自动提交(auto-commit)模式。当然可以自己来改变commit模式,比如需要执行多条语句,这些语句要求在一个事务里面,那么这时候就必须改变auto-commit模式了。可以通过调用Connection对象的setAutoCommit()方法来改变commit模式。
con.setAutoCommit(false);
上述方法,就将关闭了auot-commit模式,然后就可以执行多条语句了。比如插入、3条记录。
String sql = "INSERT INTO TEMP VALUES(1,'value')";
stmt.executeUpdate(sql);
sql = "INSERT INTO TEMP VALUES(2,'value')";
stmt.executeUpdate(sql);
sql = "INSERT INTO TEMP VALUES(3,'value')";
stmt.executeUpdate(sql);
当执行完上述SQL语句之后,千万别忘了commit一把:
con.commit();
如果想回退事务,就需要rollback了:
con.rollback();
注意:如果一旦将commit模式改变了,那么现在的commit模式将一直不变,直到再次改变commit模式。比如将auto-commit模式给关闭了,那么执行完SQL语句后,就必须自己显式的去执行commit()或rollback()操作。关于事务的详细介绍,将在事务这一章中给出。