发表于: 2020-11-14 22:08:43

1 1316


今天完成的事情:
从JDBC,mybatis,然后加上spring,变成了 JdbcTemplate和spring+mybatis,为什么要加上spring?
重新学习一下spring


又碰到事务,之前在了解service层也碰到了事务脚本,想起之前在学习jdbc的时候,用过事务管理,但当时并不知道具体概念。现在去学习一下事务

发现JDBC事务管理是在SQL事务基础增加的,之前也没学过SQL事务去学习一下
在执行SQL语句的时候,某些业务要求,一系列操作必须全部执行,而不能仅执行一部分。例如,一个转账操作:
-- 从id=1的账户给id=2的账户转账100元
-- 第一步:将id=1的A账户余额减去100
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- 第二步:将id=2的B账户余额加上100
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
这两条SQL语句必须全部执行,或者,由于某些原因,如果第一条语句成功,第二条语句失败,就必须全部撤销。
这种把多条语句作为一个整体进行操作的功能,被称为数据库事务。数据库事务可以确保该事务范围内的所有操作都可以全部成功或者全部失败。如果事务失败,那么效果就和没有执行这些SQL一样,不会对数据库数据有任何改动。

这个给我感觉就是我在使用支付宝转账到银行卡时,支付宝钱减少,银行卡增加。感觉应该是用到类似的概念


Read Uncommitted是隔离级别最低的一种事务级别。在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)。


下面了解Read Committed和Repeatable Read,Serializable就不展示了
说一下默认隔离级别
如果没有指定隔离级别,数据库就会使用默认的隔离级别。在MySQL中,如果使用InnoDB,默认的隔离级别是Repeatable Read。

而MyISAM不支持事务,所以读取大量数据(两亿)会比InnoDB快很多。



今天看了一天的概念,头有点晕,明天开始敲代码,直接做spring  mvc吧



明天计划的事情:



遇到的问题:



收获:





返回列表 返回列表
评论

    分享到