您的位置:首页 > 数据库

conn.setAutoCommit(false)

2010-04-29 00:12 267 查看
setAutoCommit
void setAutoCommit(boolean autoCommit)throws SQLException

将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,则将执行其所有 SQL 语句,并将这些语句作为单独的事务提交。否则,其 SQL
语句将成组地进入通过调用 commit 方法或 rollback
方法终止的事务中。默认情况下,新的连接处于自动提交模式下。
提交发生在语句完成或执行下一条语句时,以先发生的情况为准。在语句返回 ResultSet 对象的情况下,该语句在已检索完最后一行 ResultSet 对象或已关闭 ResultSet 对象时完成。在更复杂的情况下,单个语句可以返回多个结果和输出参数值。在这些情况下,提交发生在检索到所有结果和输出参数值后。

注:如果在事务处理期间调用此方法,则提交该事务。
参数: autoCommit - 为 true 表示启用自动提交模式;为 false 表示禁用该模式 
使用举例:

 

Connection     sqlManager   =   SQLManager.getConnection();       
sqlManager.setAutoCommit(true);   
Statement   stmt   =     sqlManager.createStatement();   

一般来说不用setAutoCommit(true);  
因为大部分的驱动默认是true;  
当你涉及事务处理的时候可以将setAutoCommit(false);  
然后在你事务完后commit一下就行了

如果sqlManager.setAutoCommit(false);的话,则在语句正常执行完毕后需要用sqlManager.commit()手动提交,如果在执行语句时出错的可以调用sqlManager.rollback()来回滚!

2、getAutoCommit()
boolean getAutoCommit()throws SQLException
检索此 Connection 对象的当前自动提交模式。
返回:此 Connection 对象的自动提交模式的当前状态

3、commit()
void commit()throws SQLException
使自从上一次提交/回滚以来进行的所有更改成为持久更改,并释放此 Connection 对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
抛出:
SQLException - 如果发生数据库访问错误或者此 Connection 对象处于自动提交模式下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 sql