当前位置: 首页 > 面试题库 >

Java:mybatis 和 hibernate 的区别有哪些?

云星波
2023-04-24

1、两者最大的区别

针对简单逻辑,都有对应的代码生成工具,可以生成简单基本的dao层方法;

针对高级查询,mybatis要手动编写sql语句和resultMap,而hibernate有良好的映射机制;

2、开发难度对比

hibernate > mybatis 

3、日志统计

hibernate有自己的日志统计功能,而mybatis需要借助log4j来记录日志。

4、数据库扩展比较

hibernate > mybatis 

5、缓存机制比较

因为hibernate对查询对象有良好的管理机制,用户无需关心sql,所以使用二级缓存如果出现脏数据,系统会报错。

而mybatis,如果不能获取最新数据,应该避免缓存的使用,脏数据的出现会给系统的正常运行带来很大的隐患。

6、如何选择

  1. mybatis需要编写sql和映射规则,工作量大于hibernate;
  2. mybatis支持的工具也有限,不能像hibernate那样有许多插件可以帮助生成映射代码和关联关系;
  3. 对于性能要求不太苛刻的系统,比如管理系统、ERP等推荐hibernate;
  4. 对于性能要求高、响应快、灵活的系统,比如电商系统,推荐使用mybatis;
 类似资料:
  • 本文向大家介绍MyBatis 和 hibernate 的区别有哪些?相关面试题,主要包含被问及MyBatis 和 hibernate 的区别有哪些?时的应答技巧和注意事项,需要的朋友参考一下 灵活性:MyBatis 更加灵活,自己可以写 SQL 语句,使用起来比较方便。 可移植性:MyBatis 有很多自己写的 SQL,因为每个数据库的 SQL 可以不相同,所以可移植性比较差。 学习和使用门槛:M

  • #{}带引号,${}不带引号; #{}可以防止SQL注入; ${}常用于数据库表名、order by子句; 一般能用#{}就不要使用${};

  • Jedis 和 Redisson 都是Java中对Redis操作的封装。Jedis 只是简单的封装了 Redis 的API库,可以看作是Redis客户端,它的方法和Redis 的命令很类似。Redisson 不仅封装了 redis ,还封装了对更多数据结构的支持,以及锁等功能,相比于Jedis 更加大。但Jedis相比于Redisson 更原生一些,更灵活。

  • 本文向大家介绍Vue和React有哪些区别,包括了Vue和React有哪些区别的使用技巧和注意事项,需要的朋友参考一下 一、监听数据变化的实现原理不同 Vue通过 getter/setter以及一些函数的劫持,能精确知道数据变化 ,不需要特别的优化就能达到很好的性能 React默认是通过 比较引用 的方式进行的,如果不优化( pureComponent/shouldComponentUpdate

  • 本文向大家介绍jedis 和 Redisson 有哪些区别?相关面试题,主要包含被问及jedis 和 Redisson 有哪些区别?时的应答技巧和注意事项,需要的朋友参考一下 jedis:提供了比较全面的 Redis 命令的支持。 Redisson:实现了分布式和可扩展的 Java 数据结构,与 jedis 相比 Redisson 的功能相对简单,不支持排序、事务、管道、分区等 Redis 特性。

  • 本文向大家介绍SpringCloud 和 Dubbo 有哪些区别?相关面试题,主要包含被问及SpringCloud 和 Dubbo 有哪些区别?时的应答技巧和注意事项,需要的朋友参考一下 首先,他们都是分布式管理框架。 dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议一般会使用JSON报文,消耗会更大。 dubbo 开发难度较大