MyBatis 优点
支持自定义 Sql ,存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接 口和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的记录。
MyBatis的核心流程
- 读取MyBatis的配置⽂件:mybatis-config.xml为MyBatis的全局配置⽂件,⽤于配置数据库连接信息。
- 加载映射⽂件:映射⽂件即SQL映射⽂件,该⽂件中配置了操作数据库的SQL语句,需要在MyBatis配置⽂ 件mybatis-config.xml中加载。mybatis-config.xml ⽂件可以加载多个映射⽂件,每个⽂件对应数据库 中的⼀张表。
- 构造会话⼯⼚:通过MyBatis的环境配置信息构建会话⼯⼚SqlSessionFactory。
- 创建会话对象:由会话⼯⼚创建SqlSession对象,该对象中包含了执⾏SQL语句的所有⽅法。
- Executor执⾏器:MyBatis底层定义了⼀个Executor接口来操作数据库,它将根据SqlSession传递的参数 动态地⽣成需要执⾏的SQL语句,同时负责查询缓存的维护。
- MappedStatement对象:在Executor接口的执⾏⽅法中有⼀个MappedStatement类型的参数,该参数 是对映射信息的封装,⽤于存储要映射的SQL语句的id、参数等信息。
- 输⼊参数映射:输⼊参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输⼊参数 映射过程类似于JDBC对preparedStatement对象设置参数的过程。
- 输出结果映射:输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果 映射过程类似于JDBC对结果集的解析过程。