mybatis查询的实现
必须掌握的内容:
- 对某个模块的增删改查
- Sql映射配置文件中各个参数的含义和区别
- Mybatis中的多参数入参如何处理
- Sql映射配置文件中association和collection的区别是什么
课堂知识点:
- SQL映射文件的顶级元素配置:
Mapper |
根节点,有一个属性namespace,作用:全局唯一,绑定接口 |
Cache |
配置缓存 |
Cache-ref |
从其他命名空间引用的缓存配置 |
resultMap |
描述结果集和对象的关系 |
Sql |
可重用的sql块 |
Insert |
插入语句 |
Update |
修改语句 |
Delete |
删除语句 |
Select |
查询语句 |
课堂案例
- 使用select完成单条件查询
- 使用select完成多条件查询(以实体类入参)
3. 使用select完成多条件查询(以Map集合入参)
4拓展知识点:
4.1可以在SQL的映射配置文件中进行配置,将每个参数都使用#{param1}…..的方式进行获取:
4.2在接口中进行配置,指定当前的变量
二.一次展示多表的数据:
使用resultMap完成查询结果的展示:
案例:查询当前用户所有信息,同时查询出当前用户的角色名称
代码如下:
实体类user中:
接口UserMapper中:
映射文件userMapper.xml中
此时要讲resultType和 resultMap进行对比:
ResultType |
resultMap |
本质上也是resultMap 不能同时在一个查询中出现 |
|
一般用于单表查询 |
复杂联合查询,多表查询时使用 |
注意:resultMap的自动映射级别:
提出问题:
虽然此处没有将所有的字段和属性进行映射,但是在查询时仍然可以查看到每一个字段的值,如何按需查询。很简单:在核心配置文件中加入一句话即可:
此时:
因为生日字段没有在resultMap中进行手动匹配。
注意:自动匹配是默认开启的,一般不需要修改,但是自动匹配的前提是当前实体类中的属性和表中的字段名称一致才行。