MyBatis核心組件
- SqlSessionFactoryBuilder 構造器,根據代碼或者配置生成SqlSessionFactory,builder模式
- SqlSessionFactory工廠接口,生成SqlSession,工廠模式
- SqlSession 會話,可以發送SQL執行返回結果,可以獲取Mapper的接口
- SQL Mapper映射器
SqlSessionFactoryBuilder工廠接口
使用XML配置或者代碼生成SqlSessionFactoryBuilder,通常使用XML配置。
MyBatis會讀取配置文件,通過Configuration類對象構建上下文。
1.png
項目中會讀取XML配置文件,通過builder模式創建SqlSessionFactory
類似:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
其具體的創建過程是隱藏的,inputStream里包含驅動,數據庫地址,賬號密碼等等一些配置信息。
SqlSession
MyBatis中SqlSession是其核心接口。SqlSession的作用類似于JDBC
中的Connection對象,代表一個連接資源的使用。作用具體有三個:
- 獲取Mapper接口
- 發送SQL給數據庫
- 控制數據庫事物
SqlSession只是一個門面接口,真正實際工作的是Executor類。
映射器
映射器有一個接口和一個XML文件(或者注解)組成。
映射器的主要作用就是將SQL查詢到的結果映射為一個POJO,或者將POJO的數據插入到數據庫中。
開發只是一個接口而不是一個實現類,MyBatis使用了動態代理的技術使得接口得以運行。