框架--MyBatis
一、MyBatis 基础认知
1. 框架的基本概念
2. ORM 框架的定义与作用
3. MyBatis 的核心定位与价值
二、MyBatis 入门实践
1. 开发环境搭建
2. 持久层接口与映射文件创建
3. 持久层接口方法的测试
4. MyBatis 核心对象与工作流程解析
5. SqlSession操作数据库的方式
6. Mapper 动态代理的实现原理
可以看到,MapperProxy调用了MapperMethod的execute方法定义了代理方式,且底层调用的是SqlSession的方法,根据映射文件标签不同调用不同的SqlSession方法。
三、CRUD 核心操作(增删改查)
1. 数据新增
2. 数据修改
优化测试类
我们发现MyBatis的测试方法在操作数据库前都需要获取代理对象,操作数据库后都需要释放资源,可以利用Junit的前置后置方法,优化测试类代码。
这样Junit就会自动执行获取代理对象和释放资源的方法。
3. 数据删除
4. 按 ID 精确查询
5. 模糊查询
6. 分页查询
分页查询时,Sql语句使用limit关键字,需要传入开始索引和每页条数两个参数。MyBatis的多参数处理有以下方式:
01,顺序传参
02,@Param传参
03,POJO传参
04,Map传参
7. 聚合查询(统计总数、求和等)
8. 主键回填(新增时获取自动生成的主键)
四、配置文件详解
1. <properties>:属性配置(如数据库连接信息)
2. <settings>:全局行为配置(如缓存、日志等)
3. <plugins>:插件集成(如分页插件)
4. <typeAliases>:类型别名(简化全限定类名)
5. <environments>:环境配置(如开发、生产环境)
事务管理
连接池
6. <mappers>:映射文件/接口扫描配置
五、映射文件核心语法
1. <resultMap>:结果集映射(解决字段与属性不一致问题)
2. <sql>:SQL 片段抽取(复用重复 SQL)
3. <include>:SQL 片段引用(如上)
4. 特殊字符处理(如 `<` `>` 转义)
六、动态 SQL 技术
1. 条件判断:<if>
2. 条件拼接:<where> <set>
3. 分支选择:<choose> <when> <otherwise>
4. 集合遍历:<foreach>(批量操作常用)
七、缓存机制
1. 缓存的基本概念与价值
2. MyBatis 一级缓存(SqlSession 级缓存)
3. 一级缓存的清空策略
4. MyBatis 二级缓存(Mapper 级缓存)
八、关联查询(多表联动)
1. 一对一关联查询
2. 一对多关联查询
查询班级时,将关联的学生集合查询出来,就是一对多关联查询。