Mybatis它的前身是 iBatis,Apache 的一个开源项目,在2010年这个项目从 Apache 迁移到 Google Code 改名为 Mybatis
Mybatis是数据访问层框架,我们可以用它来操作数据库,接下来我们看下Mybatis的源码分析:
1、mybatis的相关配置信息
- mybatis-config.xml
这里面主要配置了数据源信息即数据库连接信息和包含Sql语句的mapper映射文件
- xxMapper.xml
映射文件的配置信息,这里面包含了接口路径、sql语句、参数类型、返回类型、返回结果集类型等等
2、源码分析
首先我们看看我们的main函数
- 获取SqlSessionFactory对象
这里面我们通过读取配置文件mybatis-config.xml,获取输入流对象Reader,然后通过
new SqlSessionFactoryBuilder().build( reader )
方法获取SqlSessionFactory对象
- 获取SqlSession对象
这里通过openSession方法获取SqlSession
- 获取接口对象
通过getMapper方法获取接口对象,这里的mapper其实是一个动态代理对象,包含了SqlSessiond对象,如下图:
那么就可以通过SqlSession对象中的执行器Excutor来执行sql语句
- 执行接口对象的增删改查方法
通过执行接口对象中的findById方法来触发执行器,执行Sql语句,然后将查询结果封装到返回类型中返回,打印用户信息如下
User{id=1, username='admin', password='admin'}
到这里我们就从数据库中获取到了数据
3、Mybatis工作原理流程图
我的微信公众号