首页/ 学科题库/ Mytatis/ SQL 映射文件基础专题测试
Mytatis 模拟试卷

SQL 映射文件基础专题测试

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

试卷习题(12 题)

参考答案在文末
判断题
1
判断题

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

A

对

B

错

单选题
2
单选题

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

A

指定数据库的名称

B

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

C

配置数据库连接池

D

设置日志输出级别

3
单选题

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

A

query

B

find

C

select

D

search

4
单选题

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

A

autoKey="true"

B

useGeneratedKeys="true"

C

getKey="true"

D

returnKey="true"

5
单选题

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

A

modify

B

change

C

update

D

edit

多选题
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 
  ="deleteUser" 
  ="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">

< ="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 语句,要求只更新传入的非空字段,未传入的字段保持原值不变。同时说明与直接写全字段更新相比的优势。

参考答案
1.错误 2.B 3.C 4.B 5.C 6.A;B;C;D;E 7.A;B;C;E 8.A;C;D;E 9.id;parameterType 10.mapper;namespace 11.略 12.略
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 MyBatis 高级技能认证测试 下一套 → TypeHandler 自定义类型处理器专题测试