MyBatics与hibernate的区别?

来源:互联网 发布:苹果一键开启蜂窝数据 编辑:程序博客网 时间:2024/06/01 10:45

MyBatics与Hibernate的区别?
1.Hibernate的真正掌握要比Mybatics来的难些。MyBatics框架相对简单的容易上手,但也相对简陋些。
2.Hibernate与Mybatics都是流行的持久型开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快。而Mybatics相对平静,工具较少。
3.Hibernate和MyBatics都有相应的代码生成工具。可以生成简单的基本的DAO层方法。
4.针对高级查询,Mybatics需要手动编写Sql语句,以及ResultMap.而Hibernate有良好的映射机制,开发者无需关注SQL的生成与结果映射,可以更专注于业务流程。
5.Hibernate的调优方案
(1)制定合理的缓存策略;
(2)尽量使用延迟加载特性;
(3)采用合理的Session管理机制;
(4)使用批量抓取,设定合理的批处理参数(batch_size);
(5)制定合理的O/R映射设计
Mybatics的调优方案
mybatics在Session方面和Hibernate的Session生命周期是一致的,同样需要合理的Session管理机制。MyBatics同样具有二级缓存机制.mybatics可以进行详细的Sql优化设计
6.Sql优化方面
Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗.Hibernate也可以自己写Sql来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。而Mybatics的SQL是手动编写的,所以可以按需求指定查询的字段。
Hibernate hql语句的调优需要将SQL打印出来,而Hibernate的SQL被很多人嫌弃因为太丑了。MyBatics的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计.MyBatics本身不带日志统计,使用Log4j进行日志记录。
7.拓展性方面。Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的Hql语句与具体使用的数据库无关,移植性很好。MyBatics项目中所有的SQL语句都是依赖所用的数据库的,所以不同的数据库类型支持不同

原创粉丝点击