栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单理解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框架中设置事务


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

 

  可设置为自动提交
  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。

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

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号