一、什么是事务
事务是一种可靠、一致的方式,访问和操作数据库中数据的程序。
二、事务包含哪些原则
原子性:同一个事务内的多个操作,要么都成功,要么都失败,一个事务就是一个最小的单元。所以称为原子性。
一致性:事务执行后,数据的状态改变是一致的,结果是完整的。
隔离性:不同事物操作同一数据时,数据zh状态。
持久性:shit事务提交后,数据才会保存,若没提交事务sh数据不会修改。
三、数据库事务的实现。
mysql:
BEGIN TRANSACTION;
UPDATE t_user where amount=amount+100 where username='zhangsan';
update t_user where amount=amount-100 where username='lisi';
commit;
--rollback;回滚
四、jdbc事务管理
ResourceManager ---------Resource
Connection con = getConnection();
conn.setAutoCommit(false);
Statement stat1 = con.prepareStatement(sql1);
stat1.executeUpadate();
Statement stat2 = con.prepareStatement(sql2);
stat2.executeUpadate();
con.commit(); // or con.rollback();
五、数据库的四种隔离级别
读未提交(read-uncommitted) 可以读到未提交数据
不可重复读(read-committed) du读多次数据读到的可能buyi不一致
可重复读(repeatable-read) 没有脏读和不可重复读问题
串行化(serializable) 就是一次只能开启一个事务。
六、怎样在jdbc中保证数据的不可重复读we问题
select * from t_user for update --添加for update ,注意如果不加where条件会对表进行全表锁,所以注意使用时最好where条件中添加按主键chax查询条件