mybatis架构

mybatis架构

一 mybatis的配置文件

mybaits有两类配置文件

1. 核心配置文件SqlMapConfig.xml:该核心配置文件中配置mybatis的环境以及mapper.xml的信息(比如mapper.xml的位置)

2. mapper.xml:每一个mapper.xml都和一个mapper层的接口相对应,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

二 SqlSessionFactory

通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

通过mybatis的配置文件可以产生一个SqlSessionFactory,SqlMapConfig.xml和mapper.xml就相当于SqlSessionFactory的原材料,这个SqlSessionFactory可以生产很多的SqlSession。

三 SqlSession

由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行

SqlSession本身就可以操作数据库了。其实到了SqlSession就可以直接操作数据库了,之所以架构图中还有Executor和MappedStatement,那是因为是往SqlSession的更底层去探索。

四 Executor

mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

SqlSession里面有一个叫Executor的东西,实际上是通过SqlSession里面的Executor来执行Sql语句的

五 MappedStatement

Executor里面有一个叫MappedStatement的东西,这个东西是用来存放Sql语句的。

Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

六 输入映射

输入映射是执行SQL语句时需要的参数

Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程

七 输出映射

是执行SQL语句后生成的结果,在mybatis中,生成的结果可以封装成Integer等基本数据类型,Map,List,String,Pojo,java对象...并且可以完成自动映射。