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

接口绑定与动态代理专题测试

9 题 40 分钟 难度:

考察知识点

  • Mapper 接口与 XML 映射文件的绑定规则(namespace 与接口全限定名对应)
  • MyBatis 动态代理的工作原理(SqlSession.getMapper)
  • 接口方法名与 SQL 标签 id 的对应关系
  • 接口方法参数与 SQL 参数的映射方式
  • 动态代理的使用场景与优势
1
单选题

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

A

编译时注解处理

B

JDK 动态代理 + XML 解析

C

CGLIB 字节码增强

D

AOP 切面拦截

2
多选题

关于 MyBatis 接口绑定原理,以下哪些描述是正确的?

A

XML 映射文件的 namespace 必须与 Mapper 接口的全限定类名一致

B

XML 中 SQL 语句的 id 必须与接口方法名一致

C

接口方法可以有多个重载方法

D

MyBatis 在初始化时会解析 XML 并将映射信息注册到 Configuration 对象中

3
填空题

MyBatis 为 Mapper 接口创建的动态代理对象的核心类是___________,该代理类实现了_________________接口,在 invoke 方法中通过____________来执行 SQL 语句。

4
单选题

关于 MyBatis 中 Mapper 接口的定义,以下说法正确的是?

A

Mapper 接口必须编写实现类来完成数据库操作

B

Mapper 接口方法的参数必须与 XML 中 parameterType 完全一致

C

Mapper 接口可以继承其他接口,继承的方法也会被 MyBatis 识别

D

Mapper 接口方法只能返回实体对象,不能返回 Map 或基本类型

5
多选题

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

A

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

B

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

C

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

D

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

6
判断题

Mapper 接口方法的返回值类型必须与 XML 映射文件中对应 SQL 的 resultType 属性指定的类型完全一致,否则 MyBatis 会抛出异常。

A

B

7
单选题

以下代码中,userMapper 对象的实际类型是什么?

Java
SqlSession session = sqlSessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
A

UserMapper 接口的实现类实例

B

JDK 动态代理对象,类型为 com.sun.proxy.$ProxyX

C

MyBatis 内部生成的 UserMapperImpl 类实例

D

CGLIB 生成的代理对象

8
多选题

关于通过 SqlSession.getMapper() 获取并使用 Mapper,以下哪些说法是正确的?

A

每次调用 getMapper() 都会创建一个新的代理对象实例

B

getMapper() 返回的代理对象方法调用后,不需要手动提交事务,默认自动提交

C

使用完 Mapper 后,应该关闭其关联的 SqlSession 以释放数据库连接

D

同一个 SqlSession 多次调用 getMapper() 返回的是同一个代理实例

9
填空题

调用 session.getMapper(UserMapper.class) 时,SqlSession 内部会通过______________查找已注册的接口,然后通过__________________工厂类创建动态代理对象,最终返回的代理对象在方法调用时会委托给____________执行 SQL 逻辑。

← 上一个试卷 批量操作与性能优化专题测试
下一个试卷 → 插件开发高级应用专题测试

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

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

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

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