2026-04-23 21:09:24
ResultMap用于自定义映射关系,可以由程序员自主制定列名和属性名的映射关系,一旦使用resultMap表示不再使用自动映射机制。
resultType:表示采用MyBatis的自动映射机制,即相同的属性名和列名会自动匹配,当数据表的列名和属性名不一致的时候会导致查不到数据。
resultMap:可以自定义映射关系,便于程序员自主制定列名和属性名的映射关系。
MyBatis实现多表关联查询的情况:
N+1的方式实现
关联方式的实现
数据库表格间的关系:
一对一
多对一
一对多
多对多
业务装配:指的是在service层进行手动装配,实现关联查询的结果。
MyBatis的优点:
使用范围广
操作简单
内存小
标签的作用:用于关联一个对象。
标签的属性:
property:属性名
select:查询语句(命名空间+id)
column:表示需要传入的列的信息
顺序传参法
注解传参
Map传参
JavaBean传参
标签的作用:用于关联一个集合。
标签的属性:
property:指定要关联的属性名
select:设定要继续引用的查询
column:查询时需要传递的列
Mapper接口的工作原理:通过Mapper接口定义需要实现的方法。
Mapper接口方法重载:Mapper接口里的方法,参数不同时,方法不能重载。
MyBatis封装结果的方式:
第一种是使用标签,逐一定义列名和对象属性名之间的映射关系。
第二种是使用sql列的别名功能,将列别名书写为对象属性名(MyBatis会忽略列名大小写,智能找到与之对应对象属性名)。
注解绑定与xml绑定的选择:执行动态SQL语句时,只能通过xml进行绑定。
注解的作用:注解是用于描述代码的代码,可以用于简化配置文件。
MyBatis中常用的注解:
@Test
@Param
@Override(注意,@Test并非MyBatis特有,而是JUnit中的注解,此处可能是一个小错误或误导,应更专注于MyBatis特有的注解如@Select、@Update等)
注意:在MyBatis中,更常用的注解是@Select、@Update、@Delete、@Insert等用于CRUD操作的注解,以及@Results和@Result用于自定义结果映射的注解。
5. MyBatis注解_CRUD使用注解的注意事项:注意属性设定的格式。
实现增删改查操作的注解:
@select
@update
@delete
@insert
@Results和@Result注解的作用:
@results类似于标签
@result类似于的子标签
通过注解实现多表关联查询:
使用@Results注解定义结果映射关系,其中可以包含多个@Result注解,每个@Result注解用于映射一个列名到属性名。
对于关联对象或集合,可以使用@One(对应)或@Many(对应)注解来指定关联查询。
注意:由于注解的表达能力有限,对于复杂的查询和映射关系,使用XML配置文件仍然是更灵活和强大的选择。
7. 分析MyBatis的运行原理SqlSession对象的创建过程:
加载核心配置文件
解析xml文件
通过配置文件创建SqlSession对象
处理属性名和字段名不一致的方法:
修改属性名或给SQL语句起别名
使用resultMap手动映射属性
MyBatis运行过程中涉及的类或接口:
SqlSessionFactory:用于创建SqlSession的工厂类。
SqlSession:用于执行SQL语句和获取映射器(Mapper)实例。
Mapper接口:用户定义的接口,MyBatis通过动态代理生成其实现类,用于执行SQL语句。
MappedStatement:表示一个映射的SQL语句,包括输入参数、输出结果等信息。
Executor:MyBatis的执行器,负责SQL语句的执行和结果的处理。
Configuration:MyBatis的全局配置信息,包括数据源、事务管理器、映射器等。
MyBatis的运行原理总结:
加载配置:MyBatis首先加载全局配置文件(如mybatis-config.xml),解析并构建Configuration对象。
创建SqlSessionFactory:通过Configuration对象创建SqlSessionFactory实例。
获取SqlSession:通过SqlSessionFactory获取SqlSession实例,SqlSession用于执行SQL语句和获取Mapper接口的实现类。
执行SQL:调用Mapper接口的方法,MyBatis通过动态代理生成Mapper接口的实现类,并调用相应的SQL语句。
处理结果:MyBatis执行SQL语句后,将结果集映射为Java对象,并返回给用户。
图片展示:

(注:由于markdown格式限制,图片链接已转换为markdown格式的图片展示形式,确保在预览时能正确显示。)