用户登录
用户注册

分享至

mybatis 的缓存

  • 作者: 我叫敬业福
  • 来源: 51数据库
  • 2020-10-03
Hibernate与Mybatis对比总结
【两者相同点】
Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
Hibernate和MyBatis都支持JDBC和JTA事务处理。

【Mybatis优势】
MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
MyBatis容易掌握,而Hibernate门槛较高。

【Hibernate优势】
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。



  1、定义
mybatis是一个支持普通sql查询,存储过程和高级映射的优秀持久层框架。

2、使用原因
mybatis消除了几乎所有的jdbc代码和参数的手工设置以及对结果集的检索封装。mybatis可以使用简单的xml或注解用于配置和原始映射,将接口和java的pojo(plain old java objects,普通的java对象)映射成数据库中的记录。

3、总体流程
(1)加载配置并初始化
触发条件:加载配置文件
处理过程:将sql的配置信息加载成为一个个mappedstatement对象(包括了传入参数映射配置、执行的sql语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用mybatis提供的api
传入参数:为sql的id和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求
触发条件:api接口层传递请求过来
传入参数:为sql的id和传入参数对象
处理过程:
(a)根据sql的id查找对应的mappedstatement对象。
(b)根据传入参数对象解析mappedstatement对象,得到最终要执行的sql和执行传入参数。
(c)获取数据库连接,根据得到的最终sql语句和执行传入参数到数据库执行,并得到执行结果。
(d)根据mappedstatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(e)释放连接资源。
(4)返回处理结果将最终的处理结果返回。
软件
前端设计
程序设计
Java相关