1. MyBatis 是什么?为什么说 MyBatis 是半自动 ORM 映射工作?它与全自动的区别在哪里?
  2. MyBatis 接口与配置文件之间有什么规范吗?
  3. {} 和 ${} 的区别是什么?

  4. Xml 映射文件中,除了 select、insert、delete、update 标签之外,还有哪些?
  5. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口的方法,参数不同时,方法可以重载吗?
  6. MyBatis 嵌套查询和嵌套结果有什么区别?
  7. MyBatis 是如何进行分页的?分页插件的原理是什么?如何编写一个插件?
  8. MyBatis 执行批量插入,能返回数据库主键列表吗?怎么返回?
  9. MyBatis 动态 sql 是做什么的?都有哪些动态 sql?简述下动态 sql 的执行原理?
  10. MyBatis 是如何将 sql 执行结果封装成目标对象并返回的?都有哪些映射方式?
  11. MyBatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
  12. MyBatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  13. MyBatis 中如何执行批处理?
  14. MyBatis 都有哪些 Executor 执行器?它们之间的区别是什么?
  15. MyBatis 中如何指定使用哪一种 Executor 执行器?
  16. MyBatis 是否可以映射 Enum 枚举类?
  17. MyBatis 映射文件中,如果 A 标签通过 includ 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
  18. 简述 MyBatis 的 Xml 映射文件和 MyBatis 内部数据结构之间的映射关系?
  19. 简述 MyBatis 多级缓存的概念?
  20. MyBatis 源码用了哪些设计模式?