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

            

  • 相关阅读:
    docker mysql
    dotnet core webapi +vue 搭建前后端完全分离web架构
    npm run dev
    docker pureftpd
    虚拟主机连接FTP发送"AUTH TLS"命令后提示“无法连接到服务器”
    [mobile开发碎碎念]手机页面上显示PDF文件
    T-SQL注意事项(1)——SET NOCOUNT ON的去与留
    Tomcat 部署多个项目出现错误
    十进制小数和二进制小数之间的转换
    sed 替换多个空格为一个
  • 原文地址:https://www.cnblogs.com/start-fxw/p/7026541.html
Copyright © 2011-2022 走看看