Mybatis源码学习
一、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);