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

基本 CRUD 实战专题

专题说明

本专题通过实际案例演示 MyBatis 中增删改查(CRUD)操作的完整实现流程。在掌握了 SQL 映射文件和参数映射的基础上,本专题将这些知识点整合,完成一个完整的 CRUD 实战。

学习目标

  1. 熟练使用 <select> 完成各类查询操作
  2. 熟练使用 <insert> 实现数据插入与主键回填
  3. 熟练使用 <update> 实现数据更新
  4. 熟练使用 <delete> 实现数据删除
  5. 掌握 MyBatis 事务控制的基本流程
  6. 能够在实际业务场景中组合使用 CRUD 操作

学习内容

本专题涵盖以下知识点:

  • 单表查询操作与 <select> 标签属性
  • 插入操作与返回值处理
  • 更新操作与影响行数判断
  • 删除操作与条件控制
  • 事务控制:commit、rollback、close 的标准流程
  • CRUD 综合应用:典型业务场景下的操作组合

学习建议

  1. 本专题是前面知识的综合运用,建议先掌握 SQL 映射和参数映射基础
  2. 事务控制是重点,务必理解 try-catch-finally 的标准写法
  3. 注意 insert/update/delete 返回的是受影响行数,不是 boolean

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

📝 配套习题(8 题)

1
单选题

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

A

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

B

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

C

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

D

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

2
判断题

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

A

B

3
多选题

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

A

使用 &lt;foreach&gt; 标签在 XML 中拼接多条 INSERT 语句,一次性执行

B

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

C

使用 MyBatis 的 BatchExecutor 执行器模式

D

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

4
简答题

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

5
多选题

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

A

使用 &lt;set&gt; 标签可以自动去除最后一个字段赋值后的逗号

B

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

C

&lt;set&gt; 标签内部不能嵌套 &lt;if&gt; 标签

D

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

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 实现以下功能:先插入一条用户记录,再更新该用户的邮箱,如果任何一步失败则回滚整个事务。要求展示完整的事务控制流程。

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

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

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

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

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