1. 什么是ORM?
2. MyBatis 和 Hibernate的区别;
3. 解释一下SqlSessionFactoryBuilder, SqlSessionFactory, SqlSession 三个对象关系和作用;
4. openSession(): 方法的形参布尔值的作用?
4. 核心配置文件中 environments 标签的作用是什么?
4. 核心配置文件中为什么要配置 typeAliases 标签, 为什么要将typeAlias 子标签替换为package标签?
4. 核心配置文件中 properties 属性的作用是什么?
4. 核心配置文件中 mappers 标签用来干什么? 为什么mapper可以被package标签替代, 不怕程序找不到吗?
5. 使用SqlSession实例, 拿到mapper对象后,执行mapper中定义的方法, 明明mapper只是一个接口, 为什么可以通过拿到的mapper执行xml映射文件中的sql脚本呢?
6. 在xml文件中, #{} 和 ${} 有什么区别?
7. 在mapper接口方法中, 定义了多个形参, 如何在xml中一一对应的去使用他们(Param)?
7. 如果不使用Param注解, 传入多个参数, 如何去使用呢? 如(String name, String address);
7. 如果传入Collection集合, List, Array 它们如何使用?
9. 如何避免查询条件为一个对象,其属性值作为条件参数时, 某个属性为空导致的逻辑运算符拼接导致的语法错误?
10. 传入一个list集合, 查询条件为某个字段是否属于这个集合, 如何做到?
11. resultMap 属性的作用?
12. 实现模糊查询的几种方式?
13. 插入一条新数据后, 如何获取该记录的主键?
13. 如何解决实体类属性名和字段名不一致时, 执行查询sql后, 不一致属性值为null的情况?
14. 动态SQL trim的用法;
15. MyBatis 缓存是什么 (重点)?
16. 如何逆向创建一个简单的CRUD结构(通过实体类生成Mapper接口&xml映射文件)
17. 分页查询的几种方式;
18. 使用注解完成基本的增删改查;