全部学科
Python全栈
python
NodeJS全栈
nodejs

MyBatis 初级技能认证测试

20 题 60 分钟 难度:★

考察知识点

  1. MyBatis 概述与环境搭建:框架特点、与 Hibernate 的区别、开发环境配置、程序执行流程
  2. SQL 映射文件基础:mapper 根元素、namespace 作用、增删改查标签及属性
  3. 参数传递与结果映射:单/多参数传递方式、resultType 与 resultMap 区别、基本类型结果集
  4. 基本 CRUD 实战:select/insert/update/delete 标签使用、动态 SQL 基础、事务控制
  5. 接口绑定与动态代理:Mapper 接口定义、JDK 动态代理原理、注解与 XML 混合使用
  6. 日志配置与调试:日志框架集成、logImpl 配置、SQL 日志输出
  7. 核心配置文件:configuration 元素结构、environments 配置、typeAliases 类型别名
💡 参考答案在文末
判断题
1

MyBatis 核心配置文件(mybatis-config.xml)中各配置元素的顺序是固定的,不能随意调换。

A

B

2

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

A

B

3

MyBatis 自身内置了一个独立的日志实现模块,无需依赖任何第三方日志框架即可直接输出日志。

A

B

单选题
4

MyBatis 实现 Mapper 接口与 XML 映射文件绑定的核心机制是什么?

A

编译时注解处理

B

JDK 动态代理 + XML 解析

C

CGLIB 字节码增强

D

AOP 切面拦截

5

在 MyBatis 中,以下关于 <typeAliases> 的描述错误的是?

A

typeAliases 可以为 Java 类型设置一个短名字,减少类名冗余

B

可以使用 <typeAlias> 为单个类设置别名

C

使用 <package> 扫描包时,默认别名为类名的小写形式

D

typeAliases 配置会覆盖 MyBatis 内置的类型别名(如 int、string 等)

6

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

A

指定数据库的名称

B

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

C

配置数据库连接池

D

设置日志输出级别

7

MyBatis 核心配置文件中,<configuration> 的子元素必须按照特定顺序声明,以下哪个选项的顺序是正确的?

A

settings → properties → environments → mappers

B

properties → settings → typeAliases → environments → mappers

C

typeAliases → properties → settings → mappers → environments

D

environments → properties → settings → typeAliases → mappers

8

在 MyBatis 的 Mapper XML 中,当接口方法只有一个参数时,以下哪种 #{} 写法是正确的?

A

必须使用 #{param1} 才能获取到参数值

B

可以使用任意名称,如 #{id}#{value} 都可以

C

必须使用 #{0} 才能获取到参数值

D

必须与方法参数名完全一致,如 #{userId}

9

关于 MyBatis 中 resultMapresultType 的区别,以下描述正确的是?

A

resultType 适用于复杂映射,resultMap 适用于简单映射

B

resultType 要求数据库列名与 Java 属性名完全一致,resultMap 可以自定义列与属性的映射关系

C

resultMap 只能用于一对一映射,不能用于一对多

D

使用 resultType 时必须配置驼峰转换,否则无法映射任何字段

10

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

A

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

B

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

C

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

D

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

11

关于 MyBatis 与 Hibernate 的区别,以下描述正确的是?

A

MyBatis 是全自动 ORM 框架,Hibernate 是半自动框架

B

MyBatis 需要手动编写 SQL,Hibernate 自动生成 SQL

C

两者都是全自动 ORM 框架,没有本质区别

D

Hibernate 需要手动编写 SQL,MyBatis 自动生成 SQL

多选题
12

在 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; 标签相同的效果

13

以下关于 Mapper 接口定义方式,哪些是正确的?

A

可以使用 @Select、@Insert 等注解直接在接口方法上编写 SQL

B

使用注解编写 SQL 时,仍然需要编写 XML 映射文件

C

同一个接口可以部分方法使用注解、部分方法使用 XML 映射

D

注解方式编写的 SQL 不能使用动态 SQL 功能

14

在 MyBatis 中,以下哪些场景适合使用基本类型作为返回值?

A

使用 COUNT() 函数统计记录数量,返回 Long

B

使用 SELECT MAX() 获取最大值,返回 Integer

C

查询用户是否存在,返回 Boolean

D

查询用户列表,返回 List<User>

15

在 MyBatis 中,每个 <environment> 元素内部必须包含哪些子元素?

A

transactionManager,用于配置事务管理器

B

dataSource,用于配置数据源

C

mapper,用于配置映射文件

D

property,用于配置环境变量

16

在 MyBatis 开发环境搭建过程中,配置日志(如 log4j、logback)的主要作用有哪些?

A

查看执行的 SQL 语句

B

查看 SQL 参数绑定信息

C

查看数据库连接池状态

D

查看 MyBatis 内部调试信息

17

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

A

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

B

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

C

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

D

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

填空题
18

在 MyBatis 的 mybatis-config.xml 中,要将日志实现切换为 SLF4J,需要在 settings 中添加如下配置:

XML
<settings>
  <setting name="____________" value="____________"/>
</settings>

请填写配置项名称和对应的 SLF4J 配置值。

19

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

XML
<delete 
  ____________="deleteUser" 
  ____________="com.example.User" 
  flushCache="true" 
  timeout="30">
  DELETE FROM users WHERE id = #{id}
</delete>
20

MyBatis 程序的标准执行流程是:首先通过____________创建 SqlSessionFactory,然后由 SqlSessionFactory 创建____________,最后通过 SqlSession 获取____________接口执行数据库操作。

参考答案
1.正确 2.错误 3.错误 4.B 5.D 6.B 7.B 8.B 9.B 10.D 11.B 12.A;B;D 13.A;C 14.A;B;C 15.A;B 16.A;B;D 17.B;C;D 18.logImpl;SLF4J 19.id;parameterType 20.SqlSessionFactoryBuilder;SqlSession;Mapper
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 MyBatis 中级技能认证测试
下一套试卷 → MyBatis 概述与环境搭建专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码