zoukankan      html  css  js  c++  java
  • hibernate和mybatis区别

      看图

       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 功能更强大,对对象的维护和缓存要好,数据库移植性好,更好的缓存机制。

            

  • 相关阅读:
    systemtap没找到函数变量
    systemtap get var of the tracepoing
    如何在tracepoint上注册函数
    stap中的entry函数
    stap用法
    在submit_bio处使用stapn
    巴达努斯
    perf事件的切换
    perf原理再看
    内存回收的阈值
  • 原文地址:https://www.cnblogs.com/start-fxw/p/7026541.html
Copyright © 2011-2022 走看看