MyBatis 中级技能认证测试
考察知识点
- 动态 SQL - if/choose/trim/foreach 等动态 SQL 标签的正确使用与易错点
- 高级结果映射 - discriminator 鉴别器、延迟加载配置等高级映射技术
- 缓存机制 - 一级/二级缓存原理、缓存作用域、缓存刷新策略与配置
- TypeHandler 自定义类型处理器 - TypeHandler 接口方法、内置处理器、枚举类型处理
- 与 Spring 集成 - SqlSessionFactoryBean 配置、事务管理集成、声明式事务
- 插件机制 - 四大拦截对象、@Intercepts 注解、分页插件原理
- 批量操作与性能优化 - ExecutorType.BATCH、SQL 优化、索引失效避免
- 存储过程与高级查询 - statementType=CALLABLE、OUT 参数、游标结果处理
- 注解开发 - @One/@Many 关联查询、@SelectProvider 动态 SQL 构建
在 MyBatis 的动态 SQL 中,<trim> 标签用于自定义裁剪 SQL 片段。以下关于 <trim> 标签属性的描述,错误的是:
在 MyBatis 中,<where> 和 <set> 标签底层都可以用 <trim> 标签来实现。以下哪些 <trim> 配置可以分别等价于 <where> 和 <set> 标签的功能?
在 MyBatis 的 <if> 标签中,test 属性可以使用 OGNL 表达式进行条件判断,判断字符串相等时需要使用单引号包裹字符串常量,例如 test="name != null and name == 'admin'"。
在 MyBatis 的 <foreach> 标签中,当传入的参数是 List 类型时,collection 属性应该设置为什么值?
在 MyBatis 中,<discriminator> 元素用于根据查询结果中某列的值动态决定使用哪个 <resultMap>。以下关于 <discriminator> 的描述,哪一项是错误的?
在 MyBatis 中实现一对多集合映射时,以下哪些说法是正确的?
关于 MyBatis 一级缓存的描述,以下哪项是错误的?
关于 MyBatis 二级缓存的配置,以下哪些说法是正确的?
在 MyBatis 中,TypeHandler 接口定义了几个核心方法用于 Java 类型与 JDBC 类型之间的转换?
继承 BaseTypeHandler 实现自定义 TypeHandler 时,必须手动处理 parameter 为 null 的情况。
在 Spring-MyBatis 集成中,用于创建 SqlSessionFactory 的 Spring Bean 类是哪一个?
在使用 @Configuration 类配置 Spring-MyBatis 集成时,SqlSessionFactoryBean 需要通过 setDataSource 方法设置 ______,通过 setTypeAliasesPackage 方法设置 ______________。
MyBatis 插件机制中,@Intercepts 注解用于声明插件需要拦截的目标对象和方法。以下哪个对象不属于 MyBatis 插件可拦截的四大核心对象?
MyBatis 配置了多个插件时,它们的执行顺序是按照在 mybatis-config.xml 中配置的顺序依次执行的,先配置的插件会先被拦截执行(即先执行外层的 intercept 逻辑)。
在 MyBatis 中,以下哪种方式最适合实现"多条件可选查询"的 SQL 语句优化,避免全表扫描并提高执行效率?
在 MyBatis 中处理大数据量查询时,以下哪种分页方式在数据量达到百万级时性能最优?
在 MyBatis 中调用 MySQL 存储过程 calc_bonus(IN emp_id INT, OUT bonus DECIMAL),以下哪种 Mapper XML 配置是错误的?
在 MyBatis 中调用带有输入输出参数的存储过程时,关于参数配置的以下说法哪些是正确的?
关于 MyBatis 注解开发中 @One 和 @Many 的使用,以下说法正确的有?
关于 @SelectProvider 注解的使用,以下哪个说法是错误的?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验