一、基础概念类

  1. 什么是MyBatis?
  2. MyBatis与Hibernate的主要区别是什么?
  3. MyBatis的优缺点有哪些?
  4. MyBatis框架适合哪些应用场景?
  5. MyBatis的核心组件有哪些?
  6. MyBatis的工作原理是什么?
  7. MyBatis是如何解决JDBC编程中常见问题的?
  8. MyBatis的配置文件有哪些主要标签?

二、SQL映射与动态SQL类

  1. MyBatis中,#{}${}的主要区别是什么?
  2. 模糊查询的like语句在MyBatis中该如何编写?
  3. MyBatis的动态SQL是什么?有哪些动态SQL标签?
  4. 简述MyBatis动态SQL的执行原理。
  5. 在MyBatis中,如何实现多条件查询?
  6. MyBatis如何处理实体类属性名与数据库表字段名不一致的情况?
  7. MyBatis映射文件中,resultMap标签的作用是什么?
  8. 在MyBatis中,如何实现一对一和一对多的关联查询?
  9. MyBatis支持延迟加载吗?如果支持,它的实现原理是什么?

三、性能优化类

  1. MyBatis的一级缓存和二级缓存有什么区别?
  2. MyBatis的一级缓存和二级缓存分别是什么数据结构?
  3. MyBatis如何清理缓存?二级缓存有哪些清理策略?
  4. MyBatis中,哪些因素会影响查询性能?
  5. MyBatis如何进行分页?分页插件的原理是什么?
  6. MyBatis支持预编译吗?如何实现?
  7. MyBatis中如何优化批量插入操作?
  8. MyBatis中如何获取自动生成的主键ID?

四、高级特性类

  1. MyBatis的插件机制是什么?如何编写一个自定义插件?
  2. MyBatis中Executor执行器有哪些类型?它们之间的区别是什么?
  3. MyBatis中如何指定使用某种Executor执行器?
  4. MyBatis如何实现流式查询?
  5. MyBatis中StatementHandlerMappedStatement的区别是什么?
  6. MyBatis中TypeHandler的作用是什么?有哪些常用的TypeHandler
  7. MyBatis中SqlSession是线程安全的吗?为什么?
  8. SqlSessionTemplateSqlSessionManager的区别是什么?

五、集成与扩展类

  1. MyBatis如何与Spring框架整合?
  2. 在MyBatis中,如何配置数据源?支持哪些数据源?
  3. MyBatis如何实现事务管理?与Spring事务有何区别?
  4. MyBatis是否支持NoSQL数据库?
  5. MyBatis未来发展趋势是什么?
  6. MyBatis支持哪些数据库?如何扩展支持新的数据库?
  7. MyBatis如何通过注解方式替代XML映射文件?

六、实际应用类

  1. 在实际项目中,如何使用MyBatis优化查询性能?
  2. 如何在MyBatis中实现日志记录?
  3. 如何通过MyBatis实现数据库迁移?
  4. 在MyBatis中,如何处理复杂SQL语句?
  5. 如何在MyBatis中实现多数据源切换?
  6. 在高并发场景下,MyBatis如何优化事务管理?