mybatis和hibernate的两者的优缺点

1.开发上手难度

  hibernate 封装的功能和特性比较多,比mybatis掌握要难

2.系统调优方案

Hibernate:

  制定合理的缓存策略

  尽量使用延迟加载的特性

  采用合理的session管理机制

  使用批量抓取,设定合理的批处理参数

  进行合理的O/R映射设计

MyBatis:
  session生命周期和hibernate一致,同样需要合理的session管理机制

  mybatis同样具有二级缓存机制

  mybatis可以进行详细的sql优化设计

3.sql优化方面

  Hibernate会将表中的所有字段查询出来

  Hibernate也可以自己写sql来制定查询的字段,但这样就破坏了hibernate的开发的简洁性

  Mybatis中sql是手动编写的,所以可以按需求指定查询的字段

 总:Hibernate封装好,通用的sql。 mybatis灵活,可控性好

4.移植性

  Hibernate与具体的数据库的关联只需在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性好

  Mybatis项目中的所有sql语句都是依赖所用的数据库的,所以不同数据库类型的支持不好

5.JDBC

  Hibernate是在JDBC上进行了一次封装

  Mybatis是基于原生的JDBC的,Mybatis有运行速度上的优势。

6.动态sql

  Mybatis mapper xml支持动态sql

  Hibernate不支持

 

posted @ 2017-08-26 21:21  jiguojing  阅读(455)  评论(0)    收藏  举报