MyBatis与MyBatis-Spring中的部分接口说明

  mybatis不用多说,一个持久层框架,让开发者避开手动操作JDBC代码。
  mybatis-spring会帮助开发者将MyBatis无缝整合到Spring中,可以把它理解为一个驱动。

MyBatis核心接口类

  在mybatis应用中,是以一个SqlSessionFactory实例为中心的,其源码如下:

public interface SqlSessionFactory {

  SqlSession openSession();

  SqlSession openSession(boolean autoCommit);
  SqlSession openSession(Connection connection);
  SqlSession openSession(TransactionIsolationLevel level);

  SqlSession openSession(ExecutorType execType);
  SqlSession openSession(ExecutorType execType, boolean autoCommit);
  SqlSession openSession(ExecutorType execType, TransactionIsolationLevel level);
  SqlSession openSession(ExecutorType execType, Connection connection);

  Configuration getConfiguration();

}

  SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得,而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。具体的方式可以参考《http://www.mybatis.org/mybatis-3/zh/getting-started.html》,不文不赘述。
  下图为Mybatis核心类间的关系,SqlSessionFactoryBuilder创建SqlSessionFactory实现类DefaultSqlSessionFactory,通过DefaultSqlSessionFactory来获取执行每条SQL语句的SqlSession,其实现是DefaultSqlSession。

这里写图片描述

MyBatis-Spring核心接口类

  MyBatis-Spring只是一个驱动,最终持久化服务依旧是由MyBatis提供,即围绕SqlSessionFactory展开。Spring中,初始化Mybatis方式如下:

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations">
            <array>
                <value>classpath:com/loongshawn/dao/impl/mapper/*.xml</value>
                <value>classpath:com/loongshawn/dao/impl/mapper3/pmc/*.xml</value>
            </array>
        </property>
        <property name="typeAliasesPackage" value="com.loongshawn.domain" />
    </bean>

  这里使用了SqlSessionFactoryBean类,通过查阅源码,SqlSessionFactoryBean实现了SqlSessionFactory接口,这说明Spring最终创建的bean并非SqlSessionFactoryBean本身,而是工厂类的getObject()方法返回的对象,即SqlSessionFactory对象。

public SqlSessionFactory getObject() throws Exception {
    if (this.sqlSessionFactory == null) {
      // afterPropertiesSet方法较复杂不展开,详情看源码
      afterPropertiesSet();
    }

    return this.sqlSessionFactory;
}

xml配置文档中,mapperLocations属性使用一个资源位置的list,用来指定xml映射器文件的位置,支持Ant样式加载多个文件。

方式一:
    <property name="mapperLocations">
            <array>
                <value>classpath:com/loongshawn/dao/impl/mapper/*.xml</value>
                <value>classpath:com/loongshawn/dao/impl/mapper3/pmc/*.xml</value>
            </array>
        </property>

方式二:
    <property name="mapperLocations"    value="classpath:com/loongshawn/dao/impl/mapper3/pmc/*.xml" />

这里写图片描述

参考文章

http://www.mybatis.org/spring/zh/factorybean.html

http://www.mybatis.org/mybatis-3/zh/getting-started.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值