hibernate与mybatis比较
来源:互联网 发布:js window对象子对象 编辑:程序博客网 时间:2024/05/29 12:28
一、 开发对比
1.从开发的重量对比,hibernate比mybatis重很多
2. hibernate有自动建数据库表(包括表结构的更新等功能),开发过程中主要要关心业务逻辑,对数据表的生成修改,由hibernate底层完成;mybatis是能在数据库中操作数据表,如果需要更新表结构,只能操作数据库,不能用java代码实现。
3.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
4.hibernate与mybatis都可以根据工具生成相应的简单的dao层。
二、 技术功能对比
1. hibernate开发社区与技术提供大于mybatis。
Hibernate 与Mybatis都是流行的持久层开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。而Mybatis相对平静,工具较少,当前最高版本3.2。
2. hibernate数据库移植性远大于mybatis。
hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。
3. hibernate拥有完整的日志系统,mybatis则欠缺一些。
hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。
三、 执行性能对比
1.在不考虑缓存的情况下,mybatis执行比hibernate快。
mybatis执行SQL语句,精确度高,hibernate一般都是又hql再生成SQL语句,在复杂查询中,查询次数会增加,查询速度比mybatis慢一点
2.hibernate缓存机制比较完善,mybatis二级缓存机制不佳。
3.hibernate的事务管理机制比较完善,mybatis开发时一般使用spring提供的事务管理器
四、 维护对比
1. Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
2.Hibernate对对象的维护要比MyBatis好,对增删改查的对象的维护要方便。
3.mybatis的SQL语句统一写在XML配置文件中,维护时查找SQL语句方便,对高级的查询维护较方便
五、 总结
hibernate与mybatis各有所长,hibernate功能强大,在映射、缓存、事务管理器、日志管理这几方面比较完善;mybatis轻巧,操作执行速度效率比hibernate快,直接使用SQL语句方便高级查询。
个人建议:查询较少,用hibernate,涉及到查询非常多且复杂的项目用mybatis。
- Hibernate与MyBatis比较
- mybatis与hibernate比较
- hibernate与mybatis比较
- Hibernate与Mybatis比较
- mybatis与hibernate比较
- mybatis 与 hibernate 比较
- Hibernate与Mybatis比较
- Hibernate与MyBatis比较
- Hibernate与MyBatis比较
- hibernate与mybatis比较
- Hibernate与Mybatis比较
- Hibernate 与Mybatis 比较
- Hibernate与MyBatis比较
- hibernate与mybatis比较
- hibernate与mybatis比较
- Hibernate与 MyBatis的比较
- Hibernate与 MyBatis的比较
- Hibernate与 MyBatis的比较
- 3. Longest Substring Without Repeating Characters
- 文章标题
- 线索化二叉树的实现
- 设置Eclipse中Maven编译的JDK版本
- 【Spring-data-jpa】利用@query组合查询
- hibernate与mybatis比较
- Web建站安全防护建议
- 广度优先和深度优先的总结和实践
- day05_XML的定义与解析
- Excel在统计分析中的应用—第八章—假设检验-总体比例之差是否为不为零常数的检验
- 1203 时间日期函数
- LeetCode2. Add Two Numbers
- 20 容器vector的深度探索(学自Boolean)
- 回溯法--dfs,素数环升级版