全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

SQL 映射文件基础专题测试

12 题 40 分钟 难度:

考察知识点

  • mapper 根元素与 namespace 属性绑定
  • select 查询标签及常用属性(id、resultType、resultMap、parameterType、fetchSize)
  • insert 插入标签及主键生成(useGeneratedKeys、keyProperty、selectKey)
  • update 更新标签及缓存属性(flushCache、timeout)
  • delete 删除标签与逻辑删除实现
  • 动态 SQL 基础(set + if 组合实现按需更新)
1
单选题

在 MyBatis 的 SQL 映射文件中,mapper 根元素的 namespace 属性的作用是什么?

A

指定数据库的名称

B

绑定对应的 Mapper 接口的全限定类名,用于定位 SQL 语句

C

配置数据库连接池

D

设置日志输出级别

2
单选题

在 MyBatis 的映射文件中,以下哪个标签用于定义查询 SQL 语句?

A

query

B

find

C

select

D

search

3
单选题

在 MyBatis 中执行插入操作并希望获取数据库自动生成的主键值,应该在 insert 标签中配置哪个属性?

A

autoKey="true"

B

useGeneratedKeys="true"

C

getKey="true"

D

returnKey="true"

4
单选题

在 MyBatis 映射文件中,用于定义 UPDATE 更新语句的标签是?

A

modify

B

change

C

update

D

edit

5
判断题

在 MyBatis 中,delete 标签只能用于执行物理删除(DELETE 语句),不能用于实现逻辑删除。

A

B

6
多选题

MyBatis 的 <select> 标签支持多种属性配置,以下哪些是 select 标签的有效属性?

A

id — 唯一标识该查询语句

B

resultType — 指定返回结果的全限定类名

C

resultMap — 引用外部定义的 resultMap 来处理复杂映射

D

parameterType — 指定传入参数的全限定类名

E

fetchSize — 每次从数据库获取的记录数

7
多选题

关于 MyBatis 中 <insert> 标签的属性,以下说法正确的有哪些?

A

useGeneratedKeys="true" 可以让 MyBatis 使用数据库自动生成的主键

B

keyProperty 用于指定将主键值设置到 Java 对象的哪个属性

C

keyColumn 用于指定数据库表中主键列的名称

D

parameterType 必须指定,不能省略

E

flushCache 默认为 true,表示插入后清空缓存

8
多选题

关于 MyBatis 中 <update> 标签的属性,以下说法正确的有哪些?

A

flushCache 默认为 true,表示更新后清空缓存

B

useCache 属性对 update 标签有效,用于控制是否缓存

C

timeout 属性用于设置 SQL 执行的超时时间(秒)

D

statementType 可以设置为 STATEMENT、PREPARED 或 CALLABLE

E

update 标签的返回值默认为受影响的行数

9
填空题

请填写以下 MyBatis delete 标签中的属性名称:

XML
<delete 
  !!1_!!="deleteUser" 
  !!2_!!="com.example.User" 
  flushCache="true" 
  timeout="30">
  DELETE FROM users WHERE id = #{id}
</delete>
10
填空题

请填写以下 MyBatis mapper 映射文件中的空白部分:

XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<______2_!!="com.example.mapper.UserMapper">
  <select id="findById" resultType="User">
    SELECT * FROM users WHERE id = #{id}
  </select>
</mapper>
11
简答题

在 MyBatis 中,某些数据库(如 Oracle)不支持自动生成主键。请说明如何使用 <selectKey> 标签在 <insert> 语句中实现主键生成,并写出一个完整的示例(假设使用 Oracle 的序列 user_seq)。

12
简答题

在 MyBatis 映射文件中,如何使用 <set><if> 标签组合实现动态更新?假设有一个 User 实体类包含 id、name、email、age 四个属性,请编写一个 update 语句,要求只更新传入的非空字段,未传入的字段保持原值不变。同时说明与直接写全字段更新相比的优势。

← 上一个试卷 MyBatis 高级技能认证测试
下一个试卷 → TypeHandler 自定义类型处理器专题测试

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

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

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

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