首页/ 学科题库/ Mytatis/ 基本 CRUD 实战专题测试
Mytatis 模拟试卷

基本 CRUD 实战专题测试

8 题 40 分钟 难度:★
  • MyBatis 增删改查基本语法(insert、update、delete、select)
  • SQL 映射文件(Mapper XML)的配置与使用
  • 参数传递方式(单参数、多参数、对象参数、@Param 注解)
  • 结果集映射(resultType、resultMap)
  • 主键回填与自增主键处理
  • 动态 SQL 基础(if、where 标签)

试卷习题(8 题)

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

在 MyBatis 中,使用 selectOne() 方法查询数据库时,如果 SQL 语句返回了多条记录,MyBatis 会抛出 TooManyResultsException 异常。

A

对

B

错

单选题
2
单选题

在 MyBatis 的 Mapper XML 文件中,<select> 标签用于定义查询语句。以下关于 <select> 标签常用属性的描述,哪一项是错误的?

A

id 属性用于唯一标识该语句,必须与 Mapper 接口中的方法名一致

B

resultType 属性指定查询结果的全限定类名或别名,适用于列名与属性名一致的场景

C

resultMap 属性引用外部 <resultMap> 定义,适用于列名与属性名不一致或需要复杂映射的场景

D

parameterType 属性是必填项,不指定会导致 MyBatis 无法解析 SQL

多选题
3
多选题

在 MyBatis 中实现批量插入数据,以下哪些方式是可行的?

A

使用 <foreach> 标签在 XML 中拼接多条 INSERT 语句,一次性执行

B

在 Java 代码中使用 SqlSession 循环调用 insert() 方法

C

使用 MyBatis 的 BatchExecutor 执行器模式

D

在 <insert> 标签中直接编写多条 INSERT INTO ... VALUES (...); 语句,用分号分隔

4
多选题

在 MyBatis 中实现条件更新(UPDATE)时,以下关于动态 SQL 的使用描述,哪些是正确的?

A

使用 <set> 标签可以自动去除最后一个字段赋值后的逗号

B

使用 <if> 标签包裹每个字段的赋值语句,可以实现只更新非空字段

C

<set> 标签内部不能嵌套 <if> 标签

D

使用 <trim> 标签设置 prefix="SET" suffixOverrides="," 可以实现与 <set> 标签相同的效果

5
多选题

关于 MyBatis 中 SqlSession 的事务控制,以下哪些描述是正确的?

A

默认情况下,SqlSession 的事务是自动提交的

B

调用 sqlSession.commit() 方法可以提交当前事务

C

调用 sqlSession.rollback() 方法可以回滚当前事务

D

在创建 SqlSession 时可以指定 autoCommit 参数开启自动提交

简答题
6
简答题

请使用 MyBatis 的 <foreach> 标签编写一个批量插入用户的 Mapper XML 语句。假设用户表 t_user 包含字段 id(自增主键)、name、email、age,传入参数为 List<User> 类型的 users。请写出完整的 <insert> 语句。

7
简答题

请编写一个 MyBatis Mapper XML 中的条件删除语句。要求:根据传入的参数 id、name、age 进行条件删除,如果参数为 null 则不作为删除条件。请使用动态 SQL 标签实现。

8
简答题

请编写一段 Java 代码,使用 MyBatis 的 SqlSession 实现以下功能:先插入一条用户记录,再更新该用户的邮箱,如果任何一步失败则回滚整个事务。要求展示完整的事务控制流程。

参考答案
1.正确 2.D 3.A;B;C 4.A;B;D 5.B;C;D 6.略 7.略 8.略
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 参数传递与结果映射专题测试 下一套 → 多租户与数据权限专题测试