当前位置:首页 » 《随便一记》 » 正文

【SSM框架】Mybatis详解11(源码自取)之事务,缓存,ORM

23 人参与  2022年10月17日 19:22  分类 : 《随便一记》  评论

点击全文阅读


?‍♂️个人主页:杯咖啡?进步是今天的活动,明天的保证!✨目前正在学习:SSM框架,算法刷题?本文收录专栏:SSM框架解析?牛客网,刷算法过面试的神级网站,用牛客你也牛。 ?免费注册和我一起学习刷题??希望大家多多支持?一起进步呀!?The man who fears losing has already lost.
怕输的人已经输了。 - 《权力的游戏》

✨前言

因为开学和参与比赛断更了两周,从这周开始将持续更新每周一篇,详解SSM
上节我们复习到表的关联关系.
本节我们复习到的知识是事务,缓存,ORM
和我一起复习下去你可以获得一个比较完美框架demo,并且深刻体会框架
坚持到最后的源码解析你会收获更多哦,加油坚持!!!


文章目录

✨前言事务缓存ORM✨总结


事务

多个操作同时完成,或同时失败称为事务处理.
事务有四个特性:一致性,持久性,原子性,隔离性.
下订单的业务

在我们下订单的时候,需要以下几步,如果任何一个步骤出现问题,那么整个业务就要全部回滚。
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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!


点击全文阅读


本文链接:http://zhangshiyu.com/post/45306.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1