MyBatis扩展之事务和缓存以及ORM

行到水穷处,坐看云起时


前言

mybatis终于要结束了


一、事务

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

例子:
下订单的业务:

  1. 订单表中完成增加一条记录的操作
  2. 订单明细表中完成N条记录的增加
  3. 商品数据更新(减少)
  4. 购物车中已支付商品删除
  5. 用户积分更新

以上操作必须都成功,不能单个成功(保证数据库数据一致性)

二、在mybatis框架中设置事务

<transactionManager type="JDBC"></transactionManager>

程序员自己控制处理的提交和回滚

可设置为自动提交

sqlSession = factory.openSession();

默认是手工提交事务,设置为false也是手工提交事务,如果设置为true 则为自动提交

sqlSession = factory.openSession(true);

这样就设置为自动提交了,在增删改后不需要commit()

三、缓存

MyBatis框架提供两级缓存,一级缓存和二级缓存
默认开启一级缓存
很少自己去设置二级缓存
mybatis框架默认提供开启一级缓存(可提高查询效率)

缓存就是为了查询效率

使用缓存后,查询的流程:
在这里插入图片描述
一级缓存使用的是SqlSession的作用域,同一个SqlSession共享一级缓存的数据
二级缓存使用的是Mapper的作用域,不同的sqlSession只要访问的是同一个mapper.xml文件,则共享二级缓存作用域
在这里插入图片描述

二级缓存的开启方法在资源/文档中可以看到

四、ORM

Object Relational Mapping
对象关系映射
MyBatis框架是ORM非常优秀的框架

java语言中以对象的方式操作数据存到数据库中是以表的方式进行存储,对象中的成员变量与表中的列之间的数据互换,称为映射,
整个这套操作就是ORM(持久化操作)

持久化的操作:将对象保存到关系型数据库中,将关系型数据库中的数据读取出来以对象的形式封装

MyBatis是持久化层优秀的框架


总结

不在pom中指定资源文件就会导致resources目录之外的xml和properties文件读不出来,会丢失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值