MyBatis的初始化机制简单了解

此文参考为读后理解,如有错误,欢迎指出

原文http://blog.csdn.net/luanlouis/

Mybatis主要有一下这些属性:

-configuration 配置

     -properties 属性

     -settings 设置

    -typeAliases 类型命名

    -typeHandlers 类型处理器

    -objectFactory 对象工厂

    -plugins 插件

    -environments 环境

        -environment 环境变量

        -transactionManager 事务管理器

        -dataSource 数据源

 -映射器

 mybatis用了org.apache.ibatis.session.Configuration这个类对象作为储存配置信息的容器

其结构与XML配置文件的结构基本相差无几。

Mybatis的初始化过程就是Configuration对象的创建过程

初始化方式有两种:

        1.基于XML文件创建

            基于XML配置文件的方式是将MyBatis的所有配置信息放在XML文件中,MyBatis通过加载并XML配置文件,将配置文                信息组装成内部的Configuration对象

        2.基于JAVA API创建

           MyBatis使用者在Java代码中,手动创建Configuration对象,然后将配置参数set 进入Configuration对象中

先看一个初始化mybatis的demo:

String resource = "mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession();

List list = sqlSession.selectList("com.young.demo.userMapper.findAllUser");

 上述语句的作用是执行com.young.demo.userMapper.findAllUser中定义的SQL语句,返回一个List结果集。总的来说,上述代码经历了mybatis初始化 -->创建SqlSession -->执行SQL语句 返回结果三个过程

上面的过程详解:

       1. 调用SqlSessionFactoryBuilder对象的build(inputStream)方法;

       2. SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象;

       3. SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法;

       4. XMLConfigBuilder对象返回Configuration对象;

       5. SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象;

       6. SqlSessionFactoryBuilder返回 DefaultSessionFactory对象给Client,供Client使用。

 

其中build方法的代码实现:

1. 创建XMLConfigBuilder对象用来解析XML配置文件,生成Configuration对象
    XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
2. 将XML配置文件内的信息解析成Java对象Configuration对象
    Configuration config = parser.parse();
3. 根据Configuration对象创建出SqlSessionFactory对象
    return build(config);

上面初始化涉及到的对象:

SqlSessionFactoryBuilder : SqlSessionFactory的构造器,用于创建SqlSessionFactory,采用了Builder设计模式
Configuration :该对象是mybatis-config.xml文件中所有mybatis配置信息
SqlSessionFactory:SqlSession工厂类,以工厂形式创建SqlSession对象,采用了Factory工厂设计模式
XmlConfigParser :将mybatis-config.xml文件解析成Configuration对象,供SqlSessonFactoryBuilder创建SqlSessionFactory

猜你喜欢

转载自blog.csdn.net/qq_33419463/article/details/89329046
今日推荐