ORM框架:Mybatis与Hibernate

认识ORM

        ORM, Object-Relationl Mapping,对象关系映射。它的作用是在关系型数据库和对象之间作一个映射。

        可以在对象模型和关系型数据库的表之间建立一座桥梁,程序员使用 API 直接操作 JavaBean 对象就可以实现数据的存储、查询、更改和删除等操作。

常用ORM框架

1. Hibernate

        Hibernate是一个全表映射的框架(全自动)。开发者只要定义好持久化对象到数据库表的映射关系,就可以通过 Hibernate 框架提供的方法完成持久层操作。开发者并不需要熟练地掌握 SQL 语句的编写,Hibernate 框架会根据编制的存储逻辑,自动生成对应的 SQL,并调用 JDBC 接口来执行。

2. MyBatis

​        MyBatis是一个半自动ORM框架,MyBatis仅有基本的字段映射,仍然需要通过手写SQL来实现和管理。

        MyBatis本是Apache的一个开源项目iBatis,2010年这个项目有Apache Software Foundation 迁移到了 Google Code,切改名为 MyBatis。2013年11月迁移到GitHub。

​        MyBatis 是一款秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录.

3. MyBatis与Hibernate的对比


        MyBatis需要手写SQL语句,半自动化ORM,工作量大于Hibernate,为什么比全自动的Hibernate还受欢迎 ?

        Hibernate 学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate需要开发者的经验和能力都很强才行。

1.生成复杂的sql语句很难实现,或者实现后导致性能丢失。

​2.对数据库特定sql优化时,不友好。

​3.处理复杂的业务数据时,尤其是级联查询的时候,会导致数据查询和加载很慢。自身也存在一些缺点导致其只适合在场景不太复杂且对性能要求不高的项目中使用。


MyBatis入门简单,上手快。

​ 1.正是由于半自动化自定义SQL,所以比较灵活,可以更加精确的定义SQL。

​ 2.SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化。

​ 3.便于程序升级迭代。

同样功能的两条sql语句的性能可能相差十几倍到几十倍,在高并发、快响应要求下的互联网系统中,手写SQL更合适.


总之:

因为MyBatis具有相对轻量级,封装少,映射多样化、支持存储过程、可以进行SQL语句优化等特点,符合互联网高并发、大数据、高性能、高响应的要求,使它取代了Hibernate成为了Java互联网中首选的持久框架。而对于性能要求不高的比如内部管理系统、ERP等可以使用Hibernate.

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰冰很社恐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值