1.1 Mybatis
介绍
MyBatis
本是apache
的一个开源项目iBatis, 2010
年这个项目由apache software foundation
迁移到了google code
,并且改名为MyBatis
。2013
年11
月迁移到Github
。
MyBatis
是一个优秀的
持久层框架
,它对jdbc
的操作数据库的过程进行封装,使开发者只需要关注 SQL
本身,而不需要花费精力去处理例如注册驱动、创建connection
、创建statement
、手动设置参数、结果集检索等jdbc
繁杂的过程代码。
Mybatis
通过xml
或注解的方式将要执行的各种statement
(statement
、preparedStatemnt
、CallableStatement
)配置起来,并通过java
对象和statement
中的sql
进行映射生成最终执行的sql
语句,最后由mybatis
框架执行sql
并将结果映射成java
对象并返回。
1.2 MyBatis架构
![](https://i-blog.csdnimg.cn/blog_migrate/3a8c609e430e12986e3379e48219cb70.png)
1、mybatis
配置
SqlMapConfig.xml
,此文件作为mybatis
的全局配置文件,配置了mybatis
的运行环境等信息。
mapper.xml
文件即sql
映射文件,文件中配置了操作数据库的sql
语句。此文件需要在SqlMapConfig.xml
中加载。
2、
通过mybatis
环境等配置信息构造SqlSessionFactory
即会话工厂
3、
由会话工厂创建sqlSession
即会话,操作数据库需要通过sqlSession
进行。
4、mybatis
底层自定义了Executor
执行器接口操作数据库,Executor
接口有两个实现,一个是基本执行器、一个是缓存执行器。
5、Mapped Statement
也是mybatis
一个底层封装对象,它包装了mybatis
配置信息及sql
映射信息等。mapper.xml
文件中一个sql
对应一个Mapped Statement
对象,sql
的id
即是Mapped statement
的id
。
6、Mapped Statement
对sql
执行输入参数进行定义,包括HashMap
、基本类型、pojo
,Executor
通过Mapped Statement
在执行sql
前将输入的java
对象映射至sql
中,输入参数映射就是jdbc
编程中对preparedStatement
设置参数。
7、Mapped Statement
对sql
执行输出结果进行定义,包括HashMap
、基本类型、pojo
,Executor
通过Mapped Statement
在执行sql
后将输出结果映射至java
对象中,输出结果映射过程相当于jdbc
编程中对结果的解析处理过程。