概述
一.什么是事务
银行转账,张三转10000块到李四的账户,其实需要两条sql语句
·给张三的账户减去10000元
·给李四的账户增加10000元
二.事务的四大特性(ACID)面试!
事务的四大特性:
·原子性(Atomicity):事务中所有操作是不可再分割的原子单位。事务中所有操作要么执行成功,要么执行失败。
·一致性(Consistency):事务的状态和其他业务规则保持一致,如转账业务,不管成功或失败,参与两个账户转账之和是不会发生改变的。
·隔离性(Isolation):隔离性是指在并发操作中,不同事务之间应该隔离开来,每个并发中的事务不会互相干扰。
·持久层(Durability):一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据库中,即使提交数据后,数据库马上崩溃,在数据库重启时,也必须保证通过某种机制恢复数据。
三.MYSQL中操作事务
默认情况下,MySQL每执行一条SQL语句,都是一个单独的事务。如果需要在一个事务中包含多条SQL语句,那么需要开启事务和结束事务。
·开启事务:start transaction
`结束事务:commit 或 rollback
在执行SQL语句之前,先执行start transation ,这就开启了一个事务(事务的起点),然后可以执行多条sql语句,最后要结束事务,commit表示提交,即事务中的多条SQL语句所做出的影响会持久到数据库中,或者rollback 代表回滚,即回滚到事务的起点,之前做的所有操作都取消了!
四.JDBC事务
在jdbc中处理事务都是通过Connection完成的
同一事务中的所有操作,都在使用同一个conncetion对象!
1.JDBC中的事务
Connection有三个方法与事务相关:
·setAutoCommit(boolean) :设置是否为自动提交事务,如果为true(默认值就是true)表示自动提交,也就是每条执行的SQL语句都是一个单独的事务,如果设置false,那么就相当于开启了事务,con.setAutoCommit(false) ; --表示开启事务;
·commit():表示结束事务, con.commit(); -- 表示提交事务;
·rollback():回滚结束事务,con.rollback(); -- 表示回滚事务
jdbc处理事务的代码格式:
try {
con.setAutoCommit(false); // 开启事务
......
......
con.commit(); // 提交结束事务
}catch() {
con.rollback(); // 回滚事务
}
转载于:https://www.cnblogs.com/Tony98/p/11150278.html
最后
以上就是失眠烤鸡为你收集整理的JDBC数据库开发进阶之事务处理的全部内容,希望文章能够帮你解决JDBC数据库开发进阶之事务处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复