全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 14 道配套习题

参数传递与结果映射专题

专题说明

本专题深入讲解 MyBatis 的参数传递与结果映射机制。参数传递决定了 SQL 如何接收输入数据,结果映射决定了查询结果如何转换为 Java 对象,这是 MyBatis 数据交互的两个关键环节。

学习目标

  1. 掌握 parameterType 的使用场景与配置方式
  2. 理解单参数与多参数传递的区别
  3. 掌握 @Param 注解在多参数场景下的使用
  4. 熟练使用 resultType 进行自动结果映射
  5. 掌握 resultMap 进行复杂结果映射的配置
  6. 理解驼峰转换(mapUnderscoreToCamelCase)的作用与配置

学习内容

本专题涵盖以下知识点:

  • 参数传递:单参数、多参数、@Param 注解、Map 参数
  • resultType 自动映射:基本类型、JavaBean、List
  • resultMap 手动映射:<result><id><association><collection>
  • 驼峰命名转换与自动映射规则
  • 何时使用 resultType 何时使用 resultMap

学习建议

  1. 单参数传递是基础,先理解 MyBatis 的参数处理机制
  2. 多参数传递推荐使用 @Param 注解,提高代码可读性
  3. resultType 适用于列名与属性名一致的场景,resultMap 适用于复杂映射场景
  4. 建议开启驼峰转换,减少手动映射的工作量

📝 发现内容有误?点击此处直接编辑

📝 配套习题(14 题)

1
单选题

在 MyBatis 的 Mapper XML 中,当接口方法只有一个参数时,以下哪种 #{} 写法是正确的?

A

必须使用 #{param1} 才能获取到参数值

B

可以使用任意名称,如 #{id}#{value} 都可以

C

必须使用 #{0} 才能获取到参数值

D

必须与方法参数名完全一致,如 #{userId}

2
填空题

当 Mapper 接口方法的参数为基本类型且只有一个时,在 XML 中使用 #{} 引用该参数时________________;但如果使用了______注解指定参数名,则 XML 中必须使用该注解指定的名称。

3
单选题

当 Mapper 接口方法有多个参数且未使用 @Param 注解时,MyBatis 默认将参数封装为什么形式?

A

按参数顺序命名为 #{arg0}, #{arg1}, #{arg2}... 或 #{param1}, #{param2}, #{param3}...

B

按参数顺序命名为 #{0}, #{1}, #{2}...

C

必须使用参数在方法中的实际名称,如 #{name}, #{age}

D

多参数必须使用 Map 传递,不能直接写在方法签名中

4
多选题

在 MyBatis 中,以下哪些是多参数传递的正确方式?

A

使用 @Param 注解为每个参数命名

B

将多个参数封装为一个 JavaBean 对象

C

使用 Map 集合作为参数,将键值对存入 Map 中

D

直接在方法签名中写多个参数,XML 中使用 #{param1}, #{param2} 引用

5
填空题

在多参数传递中,推荐使用 ________________________ 注解为参数命名;当参数数量较多时,更好的做法是将参数封装为一个_______________对象,通过属性名在 XML 中引用。

6
单选题

关于 MyBatis 中 resultMapresultType 的区别,以下描述正确的是?

A

resultType 适用于复杂映射,resultMap 适用于简单映射

B

resultType 要求数据库列名与 Java 属性名完全一致,resultMap 可以自定义列与属性的映射关系

C

resultMap 只能用于一对一映射,不能用于一对多

D

使用 resultType 时必须配置驼峰转换,否则无法映射任何字段

7
多选题

在 MyBatis 的 <resultMap> 配置中,以下哪些元素是正确的?

A

<id> 用于映射数据库表的主键列到 Java 对象属性

B

<result> 用于映射普通列到 Java 对象属性

C

<association> 用于配置一对一关联关系

D

<collection> 用于配置一对多关联关系

8
单选题

开启 MyBatis 的驼峰命名转换后,数据库列 user_name 会自动映射到 Java 对象的哪个属性?

A

user_name

B

userName

C

USERNAME

D

User_Name

9
判断题

MyBatis 默认开启了驼峰命名自动转换功能,无需额外配置。

A

B

10
单选题

当需要查询数据库表的总记录数时,Mapper 接口方法的返回值类型应该是什么?

A

List<Integer>

B

IntegerLong

C

Map<String, Object>

D

自定义实体类

11
多选题

在 MyBatis 中,以下哪些场景适合使用基本类型作为返回值?

A

使用 COUNT() 函数统计记录数量,返回 Long

B

使用 SELECT MAX() 获取最大值,返回 Integer

C

查询用户是否存在,返回 Boolean

D

查询用户列表,返回 List<User>

12
填空题

当查询语句为 SELECT COUNT(*) FROM user 时,XML 中应配置 resultType="______",对应的 Mapper 接口方法返回值为______类型;若使用 resultType="map",则返回值类型为________________________

13
多选题

关于 <resultMap> 的配置,以下描述正确的有哪些?

A

<id> 元素用于映射主键字段,有助于提高 MyBatis 缓存效率

B

column 属性指定数据库列名,property 属性指定 Java 对象属性名

C

开启驼峰转换后,所有字段都不需要在 <resultMap> 中配置

D

<resultMap>type 属性指定映射的 Java 类型

14
填空题

当数据库列名与 Java 属性名不一致且无法通过驼峰转换匹配时,必须使用_________进行手动映射;在 mybatis-config.xml 中开启驼峰转换的配置项名称是________________________

← 上一个专题 动态 SQL专题
下一个专题 → 基本 CRUD 实战专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库