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

基本 CRUD 实战专题测试

8 题 40 分钟 难度:

考察知识点

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

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

A

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

B

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

C

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

D

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

2
判断题

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

A

B

3
多选题

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

A

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

B

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

C

使用 MyBatis 的 BatchExecutor 执行器模式

D

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

4
简答题

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

5
多选题

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

A

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

B

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

C

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

D

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

6
简答题

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

7
多选题

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

A

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

B

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

C

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

D

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

8
简答题

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

← 上一个试卷 参数传递与结果映射专题测试
下一个试卷 → 多租户与数据权限专题测试

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

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

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

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