MyBatis和Hibernate的区别

SSM和SSH的区别:

SSM指的是:

SpringMVC(相当于控制层)+Spring(管理各层的组件)+MyBatis(相当于持久化层)

SSH指的是:

Struts2(控制层)+Spring(管理各层的组件)+Hibernate(持久化层)

区别:

这里主要说一下MyBatis和Hibernate的区别

Hibernate和MyBatis的缓存机制不同

Hibernate一级缓存是Session缓存,利用好一级缓存就需要对Session的生命周期进行管理好。
Hibernate二级缓存是SessionFactory级的缓存,SessionFactory的缓存分为内置缓存和外置缓存。可以被所有session共享,它的生命周期伴随着SessionFactory的生命周期存在和消亡。

MyBatis一级缓存是SqlSession级别的缓存,二级缓存是mapper(命名空间)级别的缓存,默认情况下是没有开启二级缓存的。
要开启二级缓存只需要在sql映射文件中添加就可以了。

MyBatis的优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

MyBatis容易掌握,而Hibernate门槛较高。

Hibernate的优势

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存。

相比Mybatis,Hibernate的sql语句优化困难。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值