# 1. MyBatis 与 Spring AOP 的协作(事务边界) A 每个 Mapper 调用都独立开启新事务 B SqlSessionTemplate 不感知 Spring 事务 C @Transactional 由 Spring AOP 代理处理,事务内共用一个 SqlSession ✓ 正确答案 D 事务边界与 SqlSession 无关
# 2. MyBatis 与 Spring Boot Actuator 的指标集成 A 可通过 Actuator/Micrometer 暴露连接池与数据访问指标 ✓ 正确答案 B MyBatis 与 Actuator 完全无关 C Actuator 只提供健康检查 D Actuator 无法监控连接池
# 3. MyBatis 与 Spring 事务的集成(SpringManagedTransaction) A 它不能管理连接释放 B 它使用 MyBatis 自带的独立事务 C 它与 Spring 事务完全无关 D 它从 Spring 事务管理器获取连接并交由 Spring 统一管理事务 ✓ 正确答案
# 4. MyBatis 拦截器链与 Spring Bean 的协作 A MyBatis 拦截器可作为 Spring Bean 注入并访问其他依赖 ✓ 正确答案 B 拦截器不能注入 Spring 依赖 C 拦截器实例是每调用新建的 D 拦截器与责任链顺序无关
# 5. MyBatis 的 SqlSessionFactoryBean 配置 A 它只负责创建 SqlSession B 它无法配置插件 C 它由 Spring Boot 完全自动,无需关注 D 它用于构建 SqlSessionFactory,可配置数据源、XML、插件等 ✓ 正确答案
# 6. MyBatis-Plus 与 Spring Boot 4.x 的兼容性 A 所有版本都自动兼容 B 需选择与 Spring Boot 4.x 匹配的 MyBatis-Plus 版本,注意依赖兼容 ✓ 正确答案 C Spring Boot 4.x 无任何依赖变化 D MyBatis-Plus 不依赖 mybatis-spring
# 7. MyBatis-Plus 的 BaseMapper/IService 抽象 A 二者必须手写 XML B BaseMapper 只能手写 SQL C IService 是数据访问层接口 D BaseMapper 提供通用 CRUD,IService 提供服务层抽象 ✓ 正确答案
# 8. MyBatis-Plus 的乐观锁插件(OptimisticLockerInnerInterceptor) A 它用于物理分页 B 它自动在更新时校验版本号并自增,实现乐观锁 ✓ 正确答案 C 它不需要 @Version 注解 D 它通过加锁实现并发控制
# 9. SqlSessionTemplate 与线程安全的 SqlSession A 它每次调用都新建连接且不释放 B 它与原生 SqlSession 线程安全行为相同 C 它不参与事务管理 D 它是线程安全的 SqlSession 代理,事务内复用同一 SqlSession ✓ 正确答案
# 10. LambdaQueryWrapper 的类型安全优势 A 使用字符串列名,无编译期检查 B 只能用于查询,不能用于更新 C 与 QueryWrapper 完全相同 D 用方法引用引用属性,编译期校验,类型安全 ✓ 正确答案
# 11. MapperScannerConfigurer 的包扫描机制 A 它无法过滤接口 B 它只扫描实体类 C @MapperScan 与它无关 D 它扫描 Mapper 接口并注册为 Spring Bean ✓ 正确答案
# 12. MyBatis 与 Druid 连接池的协作 A MyBatis 通过 Druid 数据源获取连接,Druid 提供连接管理与 SQL 监控 ✓ 正确答案 B Druid 与 MyBatis 完全无关 C Druid 只能用于 Hibernate D Druid 无法监控 SQL
# 13. MyBatis 与 JdbcTemplate 的边界 A JdbcTemplate 支持动态 SQL 与 ResultMap B JdbcTemplate 是轻量 JDBC 封装,MyBatis 是完整 ORM 框架 ✓ 正确答案 C 两者功能完全相同 D MyBatis 无法做结果映射
# 14. MyBatis 与 Spring 6 @TransactionalEventListener 的协作 A 它在事务中同步执行 B 它在事务提交后执行回调,适合提交后发消息/清缓存 ✓ 正确答案 C 它无法与 MyBatis 配合 D 它用于开启事务
# 15. MyBatis 与 Spring Cloud 的配置中心协作 A 可通过配置中心管理数据源配置,@RefreshScope 实现刷新 ✓ 正确答案 B 配置中心无法管理 MyBatis 配置 C SqlSessionFactory 刷新无成本 D 配置刷新不影响连接池
# 16. MyBatis 与 Spring Modulith 模块边界 A Mapper 应按业务模块划分,模块间通过服务接口协作 ✓ 正确答案 B 模块间可任意访问其他模块 Mapper C Modulith 不关注模块边界 D 事务边界与模块边界无关
# 17. MyBatis 多数据源(AbstractRoutingDataSource) A 通过 determineCurrentLookupKey 路由到不同数据源,切换需在事务前 ✓ 正确答案 B 事务内可随时切换数据源 C 它只能使用一个数据源 D 它无法用于读写分离
# 18. MyBatis 的 @MapperScan 与 @Mapper 的差异 A 两者作用完全相同,无区别 B @MapperScan 只能标注在接口上 C @Mapper 用于批量扫描 D @MapperScan 批量扫描包下 Mapper 接口,@Mapper 标注单个接口 ✓ 正确答案
# 19. MyBatis 的 @Transactional 与 Propagation A REQUIRES_NEW 挂起当前事务并新建独立事务 ✓ 正确答案 B REQUIRED 总是新建事务 C Propagation 不影响连接占用 D MyBatis 不参与 Spring 事务
# 20. MyBatis 的 PageHelper 集成与边界 A 分页参数跨线程自动传递 B 分页设置对后续所有查询生效 C 它默认内存分页 D 它通过插件拦截 SQL 生成分页,用 ThreadLocal 保存分页参数 ✓ 正确答案
# 21. MyBatis 的多租户与 Spring Security 的协作 A 租户标识与安全上下文无关 B 拦截器无法注入租户条件 C 从 SecurityContext 获取租户标识,拦截器在 SQL 自动追加租户条件 ✓ 正确答案 D 多租户无需 SQL 过滤
# 22. MyBatis-Plus 与 MyBatis Dynamic DataSource(多数据源) A 多数据源无需事务协调 B 切换可在事务链中任意时刻进行 C 通过 @DS 注解在方法上切换数据源,实现读写分离 ✓ 正确答案 D 动态数据源只能单库
# 23. MyBatis-Plus 的 SQL 性能分析插件(PerformanceInterceptor)在生产环境的关闭建议 A 生产环境必须开启才能监控 B 它是开发期 SQL 性能分析工具,生产环境建议关闭避免开销 ✓ 正确答案 C 它不影响任何性能 D 它用于物理分页
# 24. MyBatis-Plus 的 SqlInjector 自定义 SQL A 它只能注入现有方法 B 它无法自定义 C 它用于分页 D 它负责向 Mapper 注入通用 SQL 方法,可自定义扩展 ✓ 正确答案
# 25. MyBatis-Plus 的 TenantLineInnerInterceptor 边界 A 它对所有 SQL 完整生效,无边界 B 它只能用于查询 C 它无需配置租户列 D 它自动在 SQL 追加租户条件,可配置忽略表 ✓ 正确答案
# 26. MyBatis-Plus 的分页插件(PaginationInnerInterceptor)原理 A 它默认内存分页 B 它不需要 IPage 参数 C 它不支持方言 D 它拦截 query 按方言生成物理分页 SQL 并执行 count ✓ 正确答案
# 28. MyBatis-Plus 的数据权限插件(DataPermissionInterceptor) A 它用于列加密 B 它根据用户权限自动追加 SQL 过滤条件,实现行级数据权限 ✓ 正确答案 C 它只能用于租户 D 它无法配置过滤规则
# 29. MyBatis-Plus 的核心特性(CRUD Wrapper、分页插件、逻辑删除) A 逻辑删除通过 @TableLogic 自动将删除改写为标记更新 ✓ 正确答案 B Wrapper 无法构造条件 C 分页插件默认内存分页 D 乐观锁无需 @Version
# 31. MyBatis-Plus 的字段自动填充(MetaObjectHandler) A 它无法填充时间字段 B 它用于分页 C 它只用于查询结果 D 它在插入/更新时自动填充标注 @TableField(fill) 的字段 ✓ 正确答案
# 32. MyBatis-Plus 的逻辑删除与全局配置 A 逻辑删除是物理删除 B 逻辑删除与全局配置无关 C 逻辑删除后查询仍返回已删记录 D 逻辑删除通过 @TableLogic 或全局配置自动将删除改写为标记更新 ✓ 正确答案