1 输出映射
查询结果的封装 → resultType → resultType写的都是单条记录的类型 → 单条和多条的查询的select标签写法一致
1.1 基本类型、包装类、字符串
比如查询表中的记录数,查询某个id对应的name值
1.1.1 单条结果
1.1.2 多条结果
直接修改接口中的方法的返回值为list或数组
1.2 javabean
1.2.1 单条结果
当前的场景:查询的列名 = 表的列名 = javabean的成员变量名
查询结果的列名和javabean的成员变量名一致
1.2.2 多条结果
1.3 resultMap
查询结果的列名和javabean的成员变量名(set方法)之间的关系
resultType:相同
resultMap:对应
2 动态sql标签
映射文件里的标签
2.1 where标签
将条件放入到where标签中
2.1.1 拼接where字符
2.1.2 去除掉跟着的and或or
2.1.3 where标签里没有内容,不会拼接where字符
2.2 if标签
判断, 判断条件为true → 拼接sql语句条件查询:根据username和password查询user信息
2.2.1 分析
2.2.2 映射文件
2.2.3 test属性语法
ognl表达式
值:
1、输入映射传入的值 → 直接写#{}里可以使用的内容
2、null
3、数字
4、字符串 → 单引号里写字符串
5、字符串长度
符号:
1、不等于 !=
2、等于 ==
3、大于 gt
4、小于 lt
5、大于等于 age gt 20 or age = 20
6、小于等于 age lt 20 or age = 20
关系:多个条件之间的关系 and/or
2.2.4 案例
如果年龄大于等于 20
条件是age >= #{age}
如果年龄小于20
条件是 age < #{age}
2.2.5 if标签没有else
只能在test属性中写一个相反的条件
2.3 choose-when-otherwise
when标签代表if,otherwise标签代表else
2.4 trim
条件更新 → User对象
prefixOverrides:如果trim标签最前面出现xxx内容,去除掉xxx →xxx对应的属性值
suffixOverrides:如果trim标签最后面出现xxx内容,去除掉xxx
prefix:整个trim里面的内容的最前面
suffix:整个trim里面的内容的最后面
2.5 set标签
update语句,要将更新的内容放入到set标签中
相当于 <‘trim prefix=”SET” suffixOverrides=”,”>’
2.6 sql-include标签
提取sql语句,引用sql语句
sql语句是可以包含标签
比较常用的场景
2.6.1 列名
2.6.2 条件
2.7 foreach标签
输入映射给到的值是数组或list的时候
2.7.1 查询时in语句
2.7.2 insert多条记录
2.8 selectKey
在你执行insert的sql语句之外额外执行一条select的sql语句
2.8.1 order:after
2.8.2 order:before
新增帅哥的记录,帅哥想和松哥密码一样
2.8.3 useGenerateKeys属性
insert标签的属性 → 是否使用生成的主键 → 是否获得自增的主键
除了使用selectKey标签获得自增的主键,也可以通过useGenerateKeys属性
2.8.3.1 单条
2.8.3.2 多条
3 插件
3.1 切换
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210104204808971.png)3.2 @Param(alt + enter)
3.3 新建映射文件中标签(alt + enter)
3.4 使用别名后,仍然可以进入javabean中
3.5 增加提示
3.6 插件是什么
mybatisCodeHelperPro
freeMybatisPlugin
3.7 问题
一个project 同目录且同名的接口和映射文件