Java学习笔记:事务简介和个人的生动形象具体详细易懂的理解【诗书画唱】

事务处理
事务简介:
事务处理用于维护数据库的完整性,它保证批
量的SQL语句要么完全执行,要么完全不执行。
因为当我们要执行多条SQL语句时,如果只有前面
几条语句执行成功,但是后面的SQL语却执行失
败的话,那么数据库中就会残留执行成功的数据,
而执行失败的语句则自然不会有数据残留,但是
这却会导致数据不匹配、不完整
总之一句话:事务是指一组操作,要么都执行成
功,要么都执行失败。
事务的特性:
1)原子性:一组操作,要么都执行成功,要
么都执行失败。
个人理解:原子是不可分割的,事务在执行过程不可以被中断,“不可被中断”就类似于“原子不可被分割”,所以这种特性被命名为“原子性”。这里的”操作“一般指的是“SQL语句”的执行,即为运行等。
2)隔离性:一个事务的操作没有完成之前,其
他事务是不能对这个事务处理的结果进行操作的,
需要牺牲速度。
个人理解:每个事务就像隔离一切的墙壁一样,只有打破一面墙,才可打破另一面墙,”操作完成“就像打破墙一样。所有才叫隔离性。
3) 一致性:事物发生和发生后的总金额依然
匹配。
个人理解:一个事务必须使数据库从一个一致性状态变换到另一个一致性状态,就是状态总和相等,类似于能量守恒等,变化前和变化后的各自的总和都相同,而“一致”有“相同”的意思,所有这个属性叫“一致性”。
首先回顾一下一致性的定义。 所谓一致性, 指的是数据处于一种有意义的状态,这种状态是语义上的而不是语法上的。最常见的例子是转帐。例如从帐户A转一-笔钱到帐户B上, 如果帐户A.上的钱减少了,而帐户B.上的钱却没有增加,那么我们认为此时数据处于不一致的状态。
4)持久性:事务产生的影响是不能撤销的。
个人理解:事务产生的影响是不能撤销的,影响是持久的,所以这个属性叫“持久性”。
事务的开启和关闭
Connection c=DBUtils.getCon();
c. setAutoCommit(false)//设置连接为手动提交
c.commit();//在执行完操作后提交事务
c.rollback();//出现异常执行回滚
个人的理解:
auto: 英 [ˈɔːtəʊ] 美 [ˈɔtoᴜ] n.汽车。(开汽车大多要用手去动)
automatic 英 [ˌɔːtəˈmætɪk] 美 [ˌɔːtəˈmætɪk] adj.自动的;
Commit:英 [kəˈmɪt] 美 [kəˈmɪt] v.做出(错或非法的事);犯(罪或错等);自杀;承诺,保证(做某事、遵守协议或遵从安排等);提交。“承诺”就是“提交决心”等。
roll 英[rəʊl] 美[roʊl] v.滚动
back 英[bæk] 美[bæk] adv.向后;