mybatis查询的实现

必须掌握的内容:

  1. 对某个模块的增删改查
  2. Sql映射配置文件中各个参数的含义和区别
  3. Mybatis中的多参数入参如何处理
  4. Sql映射配置文件中association和collection的区别是什么

课堂知识点:

  1. SQL映射文件的顶级元素配置:

Mapper

根节点,有一个属性namespace,作用:全局唯一,绑定接口

Cache

配置缓存

Cache-ref

从其他命名空间引用的缓存配置

resultMap

描述结果集和对象的关系

Sql

可重用的sql块

Insert

插入语句

Update

修改语句

Delete

删除语句

Select

查询语句

 

课堂案例

  1. 使用select完成单条件查询

mybatis查询的实现

mybatis查询的实现

mybatis查询的实现

  1. 使用select完成多条件查询(以实体类入参)

mybatis查询的实现

mybatis查询的实现

mybatis查询的实现

3. 使用select完成多条件查询(以Map集合入参)

mybatis查询的实现

mybatis查询的实现

mybatis查询的实现

4拓展知识点:

4.1可以在SQL的映射配置文件中进行配置,将每个参数都使用#{param1}…..的方式进行获取:

mybatis查询的实现

mybatis查询的实现

mybatis查询的实现

4.2在接口中进行配置,指定当前的变量

mybatis查询的实现

mybatis查询的实现

mybatis查询的实现

二.一次展示多表的数据:

使用resultMap完成查询结果的展示:

案例:查询当前用户所有信息,同时查询出当前用户的角色名称

代码如下:

实体类user中:

mybatis查询的实现

接口UserMapper中:

mybatis查询的实现

映射文件userMapper.xml中

mybatis查询的实现

mybatis查询的实现

此时要讲resultType和 resultMap进行对比:

ResultType

resultMap

本质上也是resultMap

不能同时在一个查询中出现

一般用于单表查询

复杂联合查询,多表查询时使用

 

注意:resultMap的自动映射级别:

提出问题:

mybatis查询的实现

虽然此处没有将所有的字段和属性进行映射,但是在查询时仍然可以查看到每一个字段的值,如何按需查询。很简单:在核心配置文件中加入一句话即可:

mybatis查询的实现

此时:mybatis查询的实现

因为生日字段没有在resultMap中进行手动匹配。

注意:自动匹配是默认开启的,一般不需要修改,但是自动匹配的前提是当前实体类中的属性和表中的字段名称一致才行。