- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hibernate和mybatis对比
hibernate 和 mybatis 对比
第一章 Hibernate 与 MyBatis
Hibernate 是当前最流行的 O/R mapping 框架,它出身于 ,现在已经成为Jboss 的一部分。 Mybatis 是另外一种优
秀的 O/R mapping 框架。目前属于 apache 的一个子项目。
MyBatis 参考资料官网:/core/zh/index.html
Hibernate 参考资料: /hibernate/core/3.6/reference/zh-CN/html_single/
1.1 Hibernate 简介
Hibernate 对数据库结构提供了较为完整的封装,Hibernate 的 O/R Mapping 实现了 POJO 和数据库表之间的映射,以及
SQL 的自动生成和执行。程序员往往只需定义好了 POJO 到数据库表的映射关系,即可通过 Hibernate 提供的方法完成持
久层操作。程序员甚至不需要对 SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用
JDBC 接口加以执行。
1.2 MyBatis 简介
MyBatis 的着力点,则在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将 SQL 所需的参数,以及返回的结果
字段映射到指定 POJO。 相对 Hibernate “O/R”而言,MyBatis 是一种“Sql Mapping”的 ORM 实现。
第二章 开发对比
开发速度
Hibernate 的真正掌握要比 Mybatis 来得难些。Mybatis 框架相对简单很容易上手,但也相对简陋些。个人觉得要用好
Mybatis 还是首先要先理解好 Hibernate。
开发社区
Hibernate 与 Mybatis 都是流行的持久层开发框架,但 Hibernate 开发社区相对多热闹些,支持的工具也多,更新也快,当
前最高版本 4.1.8。而 Mybatis 相对平静,工具较少,当前最高版本 3.2。
开发工作量
Hibernate 和 MyBatis 都有相应的代码生成工具。可以生成简单基本的 DAO 层方法。
针对高级查询,Mybatis 需要手动编写 SQL 语句,以及 ResultMap。而 Hibernate 有良好的映射机制,开发者无需关心 SQL
的生成与结果映射,可以更专注于业务流程。
第三章 系统调优对比
Hibernate 的调优方案
1. 制定合理的缓存策略;
2. 尽量使用延迟加载特性;
3. 采用合理的 Session 管理机制;
4. 使用批量抓取,设定合理的批处理参数(batch_size );
5. 进行合理的 O/R 映射设计
Mybatis 调优方案
MyBatis 在 Session 方面和 Hibernate 的 Session 生命周期是一致的,同样需要合理的 Session 管理机制。MyBatis 同样具
有二级缓存机制。 MyBatis 可以进行详细的 SQL 优化设计。
SQL 优化方面
Hibernate 的查询会将表中的所有字段查询出来,这一点会有性能消耗。Hibernate 也可以自己写 SQL 来指定需要查询的字
段,但这样就破坏了 Hibernate 开发的简洁性。而 Mybatis 的 SQL 是手动编写的,所以可以按需求指定查询的字段。
Hibernate HQL 语句的调优需要将 SQL 打印出来,而 Hibernate 的 SQL 被很多人嫌弃因为太丑了。MyBatis 的 SQL 是自
1 / 4
己手动写的所以调整方便。但 Hibernate 具有自己的日志统计。Mybatis 本身不带日志统计,使用 Log4j 进行日志记录。
扩展性方面
Hibernate 与具体数据库的关联只需在 XML 文件中配置即可,所有的 HQL 语句与具体使用的数据库无关,移植性很好。
MyBatis 项目中所有的 SQL 语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。
第四章 对象管理与抓取策略
对象管理
Hibernate 是完整的对象/关系映射解决方案,它提供了对象状态管理(state management )的功能,使开发者不再需要理
会底层数据库系统的细节。也就是说,相对于常见的 JDBC/SQL 持久层方案中需要管理 SQL 语句,Hibernate 采用了更自
然的面向对象的视角来持久化 Java
您可能关注的文档
- 7Java工程师三大框架面试题汇总.docx
- 5_系统安全分析——故障类型.ppt
- 8-5-蘑菇街电商算法演化:从爆款模型到个性化模型-陈春丽(灵素).pdf
- 8.10 使用延迟计算属性.pdf
- 8051指令详解.pdf
- 9 脉冲输出及高速处理指令.ppt
- AD9363无人飞行器应用中基于SDR的高分辨率、低延迟视频传输.doc
- 7-3第7章 Hibernate持久化对象.ppt
- Andersen卫生服务利用行为模型及其演变_王懿俏.pdf
- Android-多列表的项目(Rxjava+Rtrofit+Recyclerview+Glide+Adapter封装)之(一)项目架构.doc
- 西安理工大学高科学院《宽带接入与互联网通信》2023-2024学年第一学期期末试卷.doc
- 江苏省横林高级中学2024届高三(最后冲刺)语文试卷含解析.doc
- 吉林省长春外国语校2025届第二学期教学质量检测试题初三英语试题(二模)含答案.doc
- 西北工业大学《统计软件应用实训》2023-2024学年第一学期期末试卷.doc
- 江苏省辅仁高级中学2025年高考语文试题二模试题及参考答案含解析.doc
- 黑龙江省牡丹江管理局2025届初三下学期教学质量检查物理试题理试题含解析.doc
- 联盟)山东省菏泽一中2025届高三第五次模拟考试英语试题试卷含解析.doc
- 陕西交通职业技术学院《中华文明简史》2023-2024学年第一学期期末试卷.doc
- 2025年江西省景德镇一中初三阶段性调研测试数学试题不含附加题含解析.doc
- 重庆市重庆一中2024年高三第六次模拟考试英语试卷含解析.doc
文档评论(0)