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

            

  • 相关阅读:
    iOS 3DTouch 的开发套路大全
    启动图后面 添加有倒计时的广告图
    激光推送报错:APNs is not available,please check your provisioning profile and certification 和 设置别名问题 app not registed, give up set tag:
    iOS 微信和支付宝关于回调处理
    Android 开机自启动应用
    android快捷键
    如何让Eclipse的智能提示像VS一样霸气
    Win7下Eclipse中文字体太小
    Android的SharedPreferences实用技巧
    Java基础知识总结
  • 原文地址:https://www.cnblogs.com/start-fxw/p/7026541.html
Copyright © 2020-2023  润新知