conn.setAutoCommit()用法及作用(转载)
来源:互联网 发布:北京网络职业技术学院 编辑:程序博客网 时间:2024/05/21 17:07
事务操作数据:
(一)
eg:
假如银行转账系统
从张三的账户转1000元到小罗的账户
这个操作需要分两步
1.张三账户减少1000元
2.小罗账户增加1000元
假如于到断电等等,而刚好张三减了1000,而此时小罗却不增加。。。。可以想象银行这下有事做了
所以使用事务操作数据来搞定
(2)
java使用事务非常简单,首先调用conn.setAutoCommit(boolean b)方法,传入一个false,这样将不会自动提交,而需要使用conn.commit()方法,手动提交事务,当然只有在确认两个步骤都没有出错的情况下,才能提交,这样才能保证整个操作的完整性,一旦出错,使用conn.rollback()方法,回滚事务,这样的话,整个事务都将不被提交。那么如何判断有没有出错呢,非常简单,执行数据库操作的方法,都会抛出java.sql.SQLException,所以需要使用try……catch语句块捕获异常,在catch块中,使用conn.rollback()回滚事务即可
一般来讲,大家对数据库中的表单,主要是增、删、改、查 这四个操作,如果你的程序当中,遇到一次业务逻辑需要两次或两次以上的对相同数据表的增删改操作,那么,为了数据的一致性,(或者具体说,在你的一次业务逻辑的处理过程中,其他(线程或程序或业务处理)的对相同数据的相同两次查询所得结果相同。)我们会利用数据库的事务操作,将一次业务逻辑所包含的所有操作封装在一个事务里,一次将多个操作进行提交。
而conn的setAutoCommit方法,是指,在事务当中,是否执行一条语句就自动提交一次。
想在一个事务里进行多个操作。就必然将setAutoCommit的参数设置成false,在多个操作的最后调用conn.commit()方法,进行手动提交
(3)参数:true和false
假设如下:
1 数据库一个表格有50条记录
2 你设置参数为false
则在你执行整个查询SQL期间,一直是没有事务的,那么如果你的查询用到了一些函数,这些函数包含了多个查询语句,那么有可能会出现不一致的情况。
也就是说,函数、存储过程等,他们都将运行在非事务的环境下。
而你设置为true,则没有任何问题了,读一致性将保证不会出现问题。
- conn.setAutoCommit()用法及作用(转载)
- conn.setAutoCommit()用法及作用(转发)
- conn.setAutoCommit()用法及作用(转发)
- conn.setAutoCommit()用法及作用(转发)
- conn.setAutoCommit()用法及作用(转发)
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()介绍及作用
- conn.setAutoCommit()用法及…
- conn.setAutoCommit(false)
- conn.setAutoCommit(false);
- 数据库事务操作setAutoCommit(boolean b)用法与作用
- C++不常用的mutable volatile __based explicit关键字
- [android开发之内容更新类APP]三、项目的基本功能之布局
- Java中关于递归算法
- C++中的cmath常用库函数
- SWAP函数的几种写法
- conn.setAutoCommit()用法及作用(转载)
- CodeForces 271A
- Mockups~!
- leetcode-Pow(x, n)
- Python宝典第三章:Python数据类型与基本语句
- 对于字符串处理的心得
- UVA 11134 Fabled Rooks 优先队列
- NAND Flash控制器访问NAND Flash的方法
- 安卓dp换算成px