hibernate与mybatis的优缺点


1、hibernate真正掌握要比mybatis难,因为hibernate的功能和特性非常多,还不适合多表关联查询。

2、hibernate和mybatis都有代码生成工具,可以生成简单的dao方法。但对于高级查询mybatis需要自己写sql以及resultMap,而hibernate有良好的反射机制,提供预定义查询只需遵循一定的语法规范无需写sql语句。

3、hibernate调优方案:1、制定合理的缓存策略2、尽量使用延迟加载特性3、采用合理的session管理机制4、使用批量抓取设定合理的批处理参数5、进行合理的O/R映射设计

      mybatis调优方案:mybatis和hibernate的session是一致的所以也需要合理的session管理机制,可以进行详细的sql优化

4、hibernate查询会将所有关联表的字段全部查询出来,会导致性能消耗,当然hibernate也可以自己写sql指定字段,但这就破坏了hibernate的简洁性

      mybatis的sql是自己手动编写的,所以可以指定查询字段

      hibernate自带日志统计,会将sql打印出来而hibernate的sql被很多人嫌弃太丑

      mybatis不带日志统计需要使用log4j,而mybatis的sql是自己手动写的调整也方便

5、hibernate与数据库管联只需在xml文件中配置即可,所有的HQL语句都与具体使用的数据库无关,移植性很好

      mybatis所有的sql都是依赖所用数据库的,所以不能更换数据库,移植性差

6、hibernate是在jdbc上进行一次封装,mybatis是基于原生的jdbc,运行速度较快


总结:

hibernate优势:

hibernate的dao层开发比mybatis简单,mybatis需要维护sql和结果映射

hibernate对对象的维护和缓存要比mybatis好,对增删改查的对象维护要方便

hibernate数据库移植性好,mybatis不同的数据库要写不同的sql,移植性差

mybatis优势:

mybatis门槛较低更容易掌握

mybatis可以进行sql优化,自己编写sql可以指定查询字段


如果有上千万的表或者单次查询或提交百万数据以上不建议使用hibernate

如果统计功能,多表关联查询较多较复杂建议使用mybatis



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值