Mybatis介绍

本文介绍MyBatis框架,一种支持SQL查询、存储过程和高级映射的持久层框架,以及ORM(对象/关系映射)的概念。对比了MyBatis与JPA、Hibernate的特性与应用场景,详细解释了基本映射方式和流行ORM框架的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis简介

MyBatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架

MyBatis可以使用简单的XML或注解进行配置和原始映射,以将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库的记录。

ORM 对象/关系映射

ORM(Object/Relation Mapping)即对象/关系映射。

当使用面向对象开发时,从项目一开始就采用的是面向对象分析、面向对象设计、面向对象编程等,但到了持久层数据访问时,又必须重返关系数据库的访问方式,这是一种非常糟糕的感觉。于是人们需要一种工具,它可以把关系数据库包装成面向对象的模型,这个工具就是ORM。

 

注意:采用ORM框架之后,应用程序不再直接访问底层数据库,而是以面向对象的方式操作持久化对象(例如创建、修改、删除等),而ORM框架则将这些面向对象的操作转换成底层的SQL操作。

基本映射方式

ORM工具提供了持久化类和数据库之间的映射关系,通过这种映射关系,程序员可以很方便地通过持久化类实现对数据表的操作。

数据表映射类

持久化类被映射到一个数据表。程序使用这个持久化类来创建实例,修改属性,删除实例时,系统自动转换为对这个表进行CURD操作。

通俗讲:在应用程序中操作实体类,就是操作数据表。

 

流行的ORM框架

JPA

JPA本身只是一种ORM规范,并不是ORM产品。相对于其他开源ORM框架,JPA最大优势在于它是官方标准,因此具有通用性。

 

Hibernate

流行的开源ORM框架,被选为JBoss的持久层解决方案,已属于JBoss,而JBoss则加入了Red Hat组织,因此Hibernate属于Red Hat的一部分。

 

MyBatis(早期名称是iBATIS):

Apache软件基金组织的子项目,它是一种“SQL Mapper”框架,它是一种“半自动化”的ORM的实现。

 

MyBatis与Hibernate的区别

Hibernate:

是一个标准ORM框架,入门门槛较高,不需要程序写SQL语句(会自动生成)。

对SQL语句进行优化、修改比较困难。

应用场景:适用于需求变化不多的中小型项目,比如:后台管理、ERP、ORM、OA...

 

MyBatis:

专注于SQL本身,需要程序员自己编写SQL语句,SQL优化、修改比较方便。

MyBatis是一个不完全的ORM框架,也可实现映射(输入映射、输出映射)。

应用场景:适用于需求变化较多的项目,比如:互联网项目

 

JDBC与Hibernate、MyBatis:

JDBC目前极少用到,因为需要提供太多的代码,操作太多的对象,麻烦不说,还极其容易出错。

Hibernate的缺陷也十分明显,多表关联复杂SQL,数据系统权限限制,根据条件变化的SQL。Hibernate适用场景不太复杂,要求性能不太苛刻的时候使用。

MyBatis几乎可以取代JDBC,拥有动态列、动态表名,存储过程都支持,缺陷是需要程序员提供映射规则和SQL,所以工作量比Hibernate略大一些。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云下的你

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

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

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

打赏作者

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

抵扣说明:

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

余额充值