MyBatis详解

本文深入解析MyBatis框架,对比Hibernate,详述其工作原理及如何实现SQL与对象的映射。MyBatis是一个半自动ORM框架,支持手动编写SQL并优化,适用于复杂查询场景。

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

MyBatis基本知识点总结

MyBatis简介

MyBatis是一个支持普通SQL查询,存储过程以及高级映射的持久层框架。MyBatis框架也称为ORM(对象关系映射)框架。所谓的ORM是一种为解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。
Hibernate与MyBatis的区别:
1、Hibernate是一个全表映射的框架,MyBatis是一个半自动映射的框架
2、通常开发者只需定义好持久化对象到数据库表的映射关系就可通过Hibernate提供的方法完成持久化的操作;而MyBatis需要手动匹配POJO、SQL和映射关系
3、开发者并不需要熟练掌握SQL语句的编写,Hibernate会根据指定的存储逻辑,自动生成对应的SQL;而MyBatis需要手动编写SQL,可配置动态SQL,并对SQL进行优化,可通过配置决定SQL的映射规则,支持存储过程
4、Hibernate对多表关联时,SQL查询的支持性差,更新数据时,需要发送所有字段,不支持存储过程,不能通过优化SQL来优化性能等。

MyBatis的工作原理

在这里插入图片描述
1)读取MyBatis配置文件:mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息
2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.xml中加载。mybatis-config.xml文件可以加载多个映射文件,每个文件对应数据中的一张表。
3)构造会话工厂:通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。
4)创建会话对象:由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。
5)Executor执行器:MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态的生成需要执行的SQL语句,同时负责查询缓存的维护;
6)MappedStatement对象:在Executor接口的执行方法中有一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等信息。
7)输入参数映射:输入参数类型可以使Map、List等集合类型,也可以是基本数据类型和POJO类型。
8)输出结果映射:输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。
推荐一个对MyBatis讲的比较详细的链接:
MyBatis详细教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值