ORM 框架面试题之一
MyBatis
MyBatis 四大对象
四大对象介绍
MyBatis 的四大对象包括:Executor、StatementHandler、ParameterHandler、ResultSetHandler。四大对象的工作职责如下:
Executor(执行器)
:负责整个 SQL 执行过程的总体控制StatementHandler(语句处理器)
:负责和 JDBC 层交互,包括预编译 SQL 语句和执行 SQL 语句,以及调用ParameterHandler
设置参数ParameterHandler(参数处理器)
:负责设置预编译参数ResultSetHandler(结果集处理器)
:负责将 JDBC 查询结果映射到 JavaBean 对象
四大对象的工作流程
一级缓存失效的四种场景
- 使用不同的
SqlSession
进行查询 - 同一个
SqlSession
,但是查询条件不同 - 同一个
SqlSession
,但是在两次查询期间手动清空了一级缓存 - 同一个
SqlSession
,但是在两次查询期间执行了任何一次增删改操作
解决实体类的属性名与表的字段名不一致问题
三种解决方法如下:
- 编写 SQL 语句时使用字段别名
- 在 MyBatis 的全局配置文件中开启驼峰命名规则
- 在 Mapper 映射文件中使用
resultMap
来自定义映射规则