MyBatis与Spring的整合

MyBatis与Spring的整合第一步固然是导入各自依赖的Jar包,这里强调一下要导入MyBatis提供的与Spring整合的插件包,mysql

若是用Maven项目的话在pom.xml文件中加入如下依赖即可:spring

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>

整合的目的就是将MyBatis的所依赖的链接池,SqlSessiond的建立以及MyBatis的事务管理交给Spring去管理。sql

如下就是Spring的applicationContext.xml配置文件的内容:mybatis

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns = "http://www.springframework.org/schema/beans"
        xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context = "http://www.springframework.org/schema/context"
        xmlns:aop = "http://www.springframework.org/schema/aop"
        xmlns:tx = "http://www.springframework.org/schema/tx"
        xsi:schemaLocation = "
			http://www.springframework.org/schema/beans
			http://www.springframework.org/schema/beans/spring-beans.xsd
			http://www.springframework.org/schema/context
			http://www.springframework.org/schema/context/spring-context.xsd
			http://www.springframework.org/schema/aop
			http://www.springframework.org/schema/aop/spring-aop.xsd
			http://www.springframework.org/schema/tx
			http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!-- 开启Spring注解功能 -->
    <context:annotation-config />
    <!-- 配置Spring注解扫描 -->
    <context:component-scan base-package = "
							at.flying.dao,
							at.flying.service
							" />

    <!-- 开启AspectJ 注解自动代理机制-->
    <aop:aspectj-autoproxy />
    <!-- 开启事务注解 -->
    <tx:annotation-driven />

    <!--引入外部属性文件-->
    <context:property-placeholder location = "classpath:db.properties" />
    <!--配置C3P0链接池-->
    <bean id = "comboPooledDataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name = "driverClass" value = "${mysql.driver}" />
        <property name = "jdbcUrl" value = "${mysql.url}" />
        <property name = "user" value = "${mysql.username}" />
        <property name = "password" value = "${mysql.password}" />
    </bean>
    <!--配置SQLSessionFactory工厂-->
    <bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean">
        <property name = "dataSource" ref = "comboPooledDataSource" />
        <property name = "configLocation" value = "classpath:mybatis.xml" />
    </bean>

    <!--配置事务管理器-->
    <bean id = "transactionManager"
          class = "org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name = "dataSource" ref = "comboPooledDataSource" />
    </bean>
</beans>

我事务管理采用的是注解的方式,因此这里有必要强调一下,app

若是事务管理采用注解的方式的话,那么在配置事务管理器的时候Bean的id必须指定为 transactionManager,不然报错。url

以下图所示:spa

而后就是MyBatis的配置文件和映射文件,比较简单就再也不阐述。插件

而后就是在写DAO层的时候,本身的DAO类能够(并不是必须)继承 org.mybatis.spring.support.SqlSessionDaoSupport 这个类。代理

这相似于使用Hibernate时继承HibernateDaoSupport同样。code

以下图所示:

相关文章
相关标签/搜索