简单理解mybatis中的事务、缓存、ORM,原来和网上购物一样

目录

事务

MyBatis的事务管理分为两种形式:

事务有四个特性:

  在MyBatis框架中设置事务

缓存

什么是ORM


事务

 多个操作同时完成,或同时失败称为事务处理。
 对数据库的事务而言,应该具有以下几点:创建(create)、提交(commit)、回滚(rollback)、关闭(close)。对应地,MyBatis将事务抽象成了Transaction接口。

MyBatis的事务管理分为两种形式:

  1. 使用JDBC的事务管理机制:即利用java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等。
  2. 使用MANAGED的事务管理机制:这种机制MyBatis自身不会去实现事务管理,而是让程序的容器如(JBOSS,Weblogic)来实现对事务的管理。

事务有四个特性:

一致性,持久性,原子性,隔离性。

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

  在MyBatis框架中设置事务


  <transactionManager type="JDBC"></transactionManager>  ===>程序员自己控制处理的提交和回滚

 

  可设置为自动提交
  sqlSession = factory.openSession();  ===>默认是手工提交事务,设置为false也是手工提交事务,如果设置为true,则为自动提交.
  sqlSession = factory.openSession(true);  ===>设置为自动提交,在增删改后不需要commit();

缓存


  MyBatis框架提供两级缓存,一级缓存和二级缓存.默认开启一级缓存。

  缓存就是为了提交查询效率。

  使用缓存后,查询的流程:
  查询时先到缓存里查,如果没有则查询数据库,放缓存一份,再返回客户端。下次再查询的时候直接从缓存返回,不再访问数据库.如果数据库中发生commit()操作,则清空缓存。

加了缓存,第二次就效率加大了!如果数据库发生改变,则清空缓存!(重点)

我们可以将缓存放在生活中电商购物中来理解:

数据库就类似一个全国的大仓库,缓存就相当于某地区的大仓,用户下单的东西一定是平台售卖的,卖家会先在地区仓里面调,如果地区仓里面没有,就要到全国的大仓(数据库)里调,一般情况下地区仓没有了会在国仓里调一部分给地区仓,方便下一回地区仓调货。

等下次购买就可以直接从地区仓(缓存)中调货了!

  一级缓存使用的是SqlSession的作用域,同一个sqlSession共享一级缓存的数据。
  二级缓存使用的是mapper的作用域,不同的sqlSession只要访问的同一个mapper.xml文件,则共享二级缓存作用域。(mybatis提供一级、二级缓存,默认开启一级缓存)

 

 

什么是ORM


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

查看源图像
  java语言中以对象的方式操作数据,存到数据库中是以表的方式进行存储,对象中的成员变量与表中的列之间的数据互换称为映射。整个这套操作就是ORM。

更通俗的理解就是将信息可视化,表格化!

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

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值