mybatis中比较核心的两个步骤

2021-01-20  本文已影响0人  蔬菜妞

源码分析:

第一步:读取mybatis-config.xml配置文件

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

通过Resources工具类,调用ClassLoader读取classpath下的mybatis-config.xml配置文件,得到一个输入流;

第二步:(有关配置文件的解析与处理都在该步骤中)构建SqlSessionFactory

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
1、创建一个SqlSessionFactoryBuilder对象:
new SqlSessionFactoryBuilder();

2、调用SqlSessionFactoryBuilder对象的build方法:
build(InputStream inputStream)

3、创建XMLConfigBuilder 对象:
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);

4、创建XMLMapperEntityResolver对象:
new XMLMapperEntityResolver()

5、创建XPathParser对象:
new XPathParser(inputStream, true, props, new XMLMapperEntityResolver())

6、创建XPath对象:
XPathFactory factory = XPathFactory.newInstance();
this.xpath = factory.newXPath();

7、创建Document对象:(DOM解析)
JDK提供的文档解析工厂对象:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
创建一个DocumentBuilder对象:
DocumentBuilder builder = factory.newDocumentBuilder();
解析输入源的xml数据为一个Document文件:
return builder.parse(inputSource);

8、创建Configuration对象
new Configuration()
注册类型别名,初始化Configuration对象的一些成员变量的默认值

9、通过XPath方法解析mybatis-config.xml文件:
parseConfiguration(parser.evalNode("/configuration"));
将解析出来的信息封装到Configuration对象中;

10、通过持有Configuration对象创建一个DefaultSqlSessionFactory对象:
new DefaultSqlSessionFactory(configuration);
总结:
MyBatis解析配置文件的本质就是为了获得Configuration对象;
Configuration 对象可以理解是mybatis的XML配置文件在程序中的化身,是MyBatis非常重要的一个对象,里面封装了MyBatis的整个配置信息;

以上内容是mybatis非常核心关键的一个步骤!

当然,Spring中也有类似的方式,只不过封装的方式与myabtis框架有些区别
接下来,mybatis要做的就是打开sqlSession、获取Mapper接口对象,这两步比较简单
最后就是mybatis最核心的内容,调用Mapper接口对象的方法操作数据库,其底层就是jdbc

上一篇下一篇

猜你喜欢

热点阅读