hibernate和mybatis区别

时间:2023-03-08 16:48:17

  看图

   Hibernate mybatis
难易度 简单,容易上手
编码 良好的映射机制,不需要关心 需要手动编写sql,resultMap
调优
  1. 制定合理的缓存策略;
  2. 尽量使用延迟加载特性;
  3. 采用合理的Session管理机制;
  4. 使用批量抓取,设定合理的批处理参数(batch_size);
  5. 进行合理的O/R映射设计
  1. 采用合理的Session管理机制;
  2. 详细的SQL优化设计
sql优化
  1. 查出所有属性,性能消耗高
  2. 有自己的日志统计
  1. 需要什么,返回什么属性
  2. 需要使用log4j记录日志
数据库 数据库关联只需要xml中配置,移植性很好 sql语句依赖数据库,不同数据库类型的支持不好
抓取策略

对于每一个关联关系都可以详细地设置是否延迟加载,

并且提供关联抓取、查询抓取、子查询抓取、批量抓取四种模式。

延迟加载是全局配置的
缓存

二级缓存配置在SessionFactory生成的配置文件中进行详细配置。

二级缓存配置都是在每个具体的表-对象映射中进行详细配置
  • Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,                                                     然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。                                                                         其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
  • 都支持JDBC和JTA事务处理。
  • Session生命周期是一致的,都具有二级缓存机制
代码 都是流行的持久层开发框架,都有相应的代码生成工具,生成最基本的Dao层方法。

  总而言之:mybatis更简单,容易上手,优点是更为细致的SQL优化,可以减少查询字段。

         hibernate 功能更强大,对对象的维护和缓存要好,数据库移植性好,更好的缓存机制。