Hibernate ,Mybatis 区别,以及各自的一级,二级缓存理解

区别:1.Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。MyBatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象,算是半自动ORM映射工具。2.Mybatis 学习门槛低,简单易
摘要由CSDN通过智能技术生成

区别:

1.Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。MyBatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象,算是半自动ORM映射工具。
2.Mybatis 学习门槛低,简单易学,程序员直接编写原生态 sql,可严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是 mybatis 无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套 sql 映射文件,工作量大。
3.Hibernate 对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用 hibernate 开发可以节省很多代码,提高效率。因此他的数据库移植性很好,而Mybatis更换数据库,很多sql语句要大量修改。但是Hibernate 的缺点是学习门槛高,要精通门槛更高,而且怎么设计 O/R 映射,

原文链接:https://blog.csdn.net/banzhuanhu/article/details/110201816

一级缓存(内置缓存,都是默认开启)

1:一级缓存是默认开启的;
2:底层其实是基于hashmap的本地内存缓存;
3:作用域是session(其实就相当于在一个方法里,更准确说应该是一次与数据库的会话,一个方法如果提交了2次事务,就出现2个session了?);
4:当session关闭或者刷新的时候缓存清空;
5:不同sqlsession或者是hibernatesession之间缓存互不影响,是线程独享的;

导致的问题

数据一致性问题:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值