- 🧛♂️个人主页:杯咖啡
- 💡进步是今天的活动,明天的保证!
- ✨目前正在学习:SSM框架,算法刷题
- 👉本文收录专栏:SSM框架解析
- 🙌牛客网,刷算法过面试的神级网站,用牛客你也牛。 👉免费注册和我一起学习刷题👈
- 🐳希望大家多多支持🥰一起进步呀!
- 😎The man who fears losing has already lost.
怕输的人已经输了。 - 《权力的游戏》
✨前言
因为开学和参与比赛断更了两周,从这周开始将持续更新
每周一篇,详解SSM
。
上节我们复习到表的关联关系
.
本节我们复习到的知识是事务,缓存,ORM
和我一起复习下去你可以获得一个比较完美框架demo
,并且深刻体会框架
。
坚持到最后的源码解析
你会收获更多哦,加油坚持!!!
事务
多个操作同时完成,或同时失败称为事务处理.
事务有四个特性:一致性,持久性,原子性,隔离性.
下订单的业务
在我们下订单的时候,需要以下几步,如果任何一个步骤出现问题,那么整个业务就要全部回滚。
1)订单表中完成增加一条记录的操作
2)订单明细表中完成N条记录的增加
3)商品数据更新(减少)
4)购物车中已支付商品删除
5)用户积分更新(增加)
<!-- 配置事务管理器
type:指定事务管理的方式
JDBC:事务的控制交给管理员来处理
MANAGED:由容器(Spring)来管理事务
-->
<transactionManager type="JDBC"></transactionManager>
同时我们也可以设置自动提交
//3.取出sqlsession
sqlSession = factory.openSession();
sqlSession = factory.openSession(true);
缓存
缓存就是为了提交查询效率
MyBatis框架提供两级缓存,一级缓存和二级缓存.默认开启一级缓存.
使用缓存后,查询的流程:
查询时先到缓存里查,如果没有则查询数据库,放缓存一份,再返回客户端.下次再查询的时候直接从缓存返回,不再访问数据库.如果数据库中发生commit()操作,则清空缓存.
一级缓存使用的是SqlSession的作用域,同一个sqlSession共享一级缓存的数据.
二级缓存使用的是mapper的作用域,不同的sqlSession只要访问的同一个mapper.xml文件,则共享二级缓存作用域.
这里小编写了一个测试类,很明显可以看到两次取出的对象为同一个。
ORM
ORM(Object Relational Mapping):对象关系映射
MyBatis框架是ORM非常优秀的框架.
java语言中以对象的方式操作数据,存到数据库中是以表的方式进行存储,对象中的成员变量与表中的列之间的数据互换称为映射.整个这套操作就是ORM.
持久化的操作:将对象保存到关系型数据库中 ,将关系型数据库中的数据读取出来以对象的形式封装
MyBatis是持久化层优秀的框架.
持久化:从内存中读取数据进数据库
从数据库中返回数据给内存
这个过程称为持久化
✨总结
本节复习了事务,缓存,ORM
下一节我们将会进行简单的源码分析
。
本次源码放在代码仓库gitee,自取链接
原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!