- MyBatis的运行原理
- MyBatis的底层还是使用JDBC的来对数据库进行操作的,MyBatis框架是对JDBC的在次封装
- 当MyBatis开始运行的时候,Rresurces加载核心配置的文件,之后使用XMLConfigBuilder对配置文件进行解析,并将解析完毕的核心配置文件封装成一个Configuration对象,接着使用Configfuration对象创建DefaultSqlSessionFactroy对象,到此整个的工厂执行完毕。
在通过工厂对象调用OpenSession方法创建一个SqlSession实现类对象,在这个过程中需要通过TansactionFactory(事物工厂创)生成一个Tansaction事物对象,并且还需要创建核心的执行器对象Executor对象的,最后通过这些对象创建一个DefaultSqlSession对象到此SqlSession对象的创建结束
在通过SqlSession的实现对象DefaultSqlSession对象进行相关操作
如果成功使用commit()方法进行事物的提交反之使用rollback()方法进行事物的回滚保证数据的安全
最后使用close()将sqlSession的资源关闭
- sqlSession接口对象的创建流程
- 通过Resurces类对象获取核心配置文件的文件的输入流
- XMLConfigBuilder解析核心配置文件
- 解析完毕生成一个Configuration对象存放解析结果
- 解析的结果创建一个defaultSQlSsessionFactroy对象该对是SqlSessionFactroy的实现类,创建时需要使用Configuration对象
- 至次工厂对象创建成功
- SqlSession(I)
- DefaultSqlSession是SqlSession的实现类
- TransactionFactory(I)用于生产Transaction的对象(事物对象)
- Transaction事物对象
- Executor(I)执行器是MyBatis是核心执行器该执行器类似于JDBC Statement
- 创建DefaultSqlSession对象
- 返回一个sqlSession对象
- 使用MyBaits实现多表