JDBC之Transaction(事务),SetAutoCommit保证事务原子性
2017-09-24 22:45
591 查看
默认的话为自动提交, 每执行一个update ,delete或者insert的时候都会自动提交到数据库,无法回滚事务。
设置connection.setAutoCommit(false);只有程序调用connection.commit()的时候才会将先前执行的各语句一起提交到数据库;或者先前执行的各语句只执行了一部分,然后就失败了,这时可以程序调用connection.rollBack()。这样就实现了数据库的事务。
connection.setAutoCommit(true)和connection.setAutoCommit(false)的区别:
true:sql命令的提交(commit)由驱动程序负责
false:sql命令的提交由应用程序负责,程序必须调用commit或者rollback方法
Connection.setAutoCommit使用的注意事项
设置connection.setAutoCommit(false);只有程序调用connection.commit()的时候才会将先前执行的各语句一起提交到数据库;或者先前执行的各语句只执行了一部分,然后就失败了,这时可以程序调用connection.rollBack()。这样就实现了数据库的事务。
connection.setAutoCommit(true)和connection.setAutoCommit(false)的区别:
true:sql命令的提交(commit)由驱动程序负责
false:sql命令的提交由应用程序负责,程序必须调用commit或者rollback方法
Connection con = null; try{ con = getConnection(); con.setAutoCommit(false); /* * do what you want here. */ con.commit(); }catch(SQLException e){ if(con!=null){ try { con.rollback(); con.setAutoCommit(true); } catch (SQLException e1) { e1.printStackTrace(); } } }finally{ if(con!=null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } }
参考链接
mysql事务autocommitConnection.setAutoCommit使用的注意事项
相关文章推荐
- mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法
- mysql事务,SET AUTOCOMMIT,START TRANSACTION
- [Java] JDBC 06 批Transaction处理 -- conn.setAutoCommit(false); // 不让其自动提交 (很重要的知识点)
- [Java] JDBC 06 批Transaction处理 -- conn.setAutoCommit(false); // 不让其自动提交 (很重要的知识点)
- JDBC and Oracle conn.commit and conn.setAutocommit not working properly
- 数据库事务操作setAutoCommit(boolean b)用法与作用
- 事务回滚setAutoCommit(false)
- JDBC的autoCommit为true时,其事务管理测试
- 事务处理 set autocommit = 0
- Connection.setAutoCommit(boolean b)自动提交事务
- JDBC conn.setAutoCommit(false) 问题
- jdbc-mysql基础 Connection setTransactionIsolation 设置事务的隔离等级
- jdbc-mysql基础 Connection setSavepoint 事务的保存点
- Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition
- setAutoCommit()
- hibernate,spring管理事务中(transaction,JDBC connection,Hibernate Session的使用)
- Connection.setAutoCommit使用的注意事项
- EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句
- 20170205JDBC的学习第二天:PreparedStatement的使用、事务(Transaction)的学习
- Connection.setAutoCommit使用的注意事项