Mybatis源碼學習
- 一、SqlSessionFactory
-
- SqlSession
-
- getMapper
一、SqlSessionFactory
SqlSessionFcatory建構過程
//建立私有靜态的引用,確定該引用隻會建立一個且不能被外部直接修改
public static SqlSessionFactory sqlSessionFactory=null;
//使用靜态代碼塊,以保證該部分代碼在類加載的同時就能首先被加載
static {
try {
//以輸入流的形式讀取配置檔案
InputStream inputStream= Resources.getResourceAsStream("mybatis-config.xml");
//将工廠類的引用指向由SqlSessionBuilder類對象調用build(配置輸入流)方法建立的SqlSession工廠類對象
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
SqlSession
//擷取SqlSession對象
public static SqlSession createSqlSession(){
return sqlSessionFactory.openSession();
}
讀取XML -> 建構XML到Mapper映射 ->jdbc互動生産傳回值
getMapper
ArchiveMapper mapper = openSession.getMapper(ArchiveMapper.class);
int addOne = mapper.addOne(archive);