我们知道MyBatis的持久化操作离不开SqlSessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession方法可以打开SqlSession对象。该对象由SqlSessionFactoryBuilde加载MyBatis的配置文件产生。
代码如下所示:

// 读取mybatis-config.xml 文件
Inputstream inputStream= Resources.getResourceAsStream("mybatis-config.xm1") ;
// 初始化mybatis,
// 创建SqlSessionFactory 类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream) ;
// 创建Session 实例
SqlSession session= sqlSessionFactory.openSession() ;
上述代码的功能是根据配置文件mybatis-config.xml,创建SqlSessionFactory 对象,然后产生SqlSession,执行SQL语句。而

MyBatis的初始化就发生在第三句:
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream) ;
现在就让我们看看第三句到底发生了什么。
MyBatis初始化基本过程:
SqlSessionFactoryBuil根据传入的数据流生成Configuration对象,然后根据Configuration对象创建默认的SqlSessionFactory实例。
初始化的基本过程如下图所示。
session-init.jpg
MyBatis 初始化要经过以下几步:
由上图所示,
(1)调用SqlSessionFactoryBuiler对象的build(inputStream)方法。
(2)SqlSessionFactoryBuilder会根据输入流inputStream 等信息创建XMLConfigBuilder对象。
(3)SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法。
(4)XMLConfgBuilder 对象解析XML 配置文件返回Configuration 对象。
(5)SqlSessionFactoryBuilder根据Configuration 对象创建一个DefaultSessionFactory对象,供客户端使用。
(6)SqlSessionFactoryBuilder返回DefaultSessionFactory对象给客户端,由此可见,SqlSessionFactory是根据MyBatis的配置文件mybatis-config.xml创建的。

标签: none

已有 3 条评论

  1. bigredpig bigredpig

    怎样才能成为会员,能注册么

    1. 会员的功能,我还没有开发好呢,再等等吧。

      1. tan90° tan90°

        http://www.devilfish.cn,我可以利用空余时间帮忙做这个网站的开发吗?

添加新评论