spring与mybatis配置文件的详解

在使用mybatis-generator.xml生成接口和mapper.xml(映射器),我们要配置数据源,有三种方法:

一,可以在mybatis的全局配置文件中配置,也就是在文件中使用mybatis自己的标签,能够实现mybats的所有配置。在与spring整合时,在spring的IOC配置文件(application.xml)引入即可。引入的方式也有两种:

1),在sqlSessionFactory的属性中配置

    <!-- 2. 配置sqlsession -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:mybatis-config.xml" />
    </bean>

2),使用import标签(待考证,我自己根据推理感觉可以。。。哈哈)

<import resource="spring-config.xml"/>

mybatis-config.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <!-- MyBatis全局配置文件 -->
 <configuration>
 	
 	<properties resource="database.properties"></properties>
 	
 	<!-- 设置lo4j日志文件 -->
 	<settings>
 		<setting name="logImpl" value="STDOUT_LOGGING"/>
 	</settings>
 	
 	<!-- 可配置多套运行环境,如开发环境、测试环境、生产环境等 -->
 	<!-- development 开发者模式 -->
 	<environments default="development">
 		<environment id="development">
 			<!-- 事务管理器 JDBC|MANAGED JDBC:直接使用JDBC的提交和回滚功能 -->
 			<transactionManager type="JDBC"></transactionManager>
 			<dataSource type="POOLED">
 				<property name="driver" value="${driver}"/>
 				<property name="url" value="${url}"/>
 				<property name="username" value="${userName}"/>
 				<property name="password" value="${pwd}"/>
 			</dataSource>
 		</environment>
 	</environments>
 	
 	<!-- 加载映射文件 -->
 	<mappers>
 		<mapper resource="mapper/EmpMapper.xml"/>
 		<!-- <mapper url="file:///E:/EmpMapper.xml"/> -->
 	</mappers>
 	
 </configuration>

二,目前spring支持的mybatis的所有配置,可直接在application.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 配置数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?3useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
        <property name="minPoolSize" value="10"/>
        <property name="maxPoolSize" value="100"/>
        <property name="acquireIncrement" value="3"/>
        <property name="acquireRetryAttempts" value="60"/>
        <property name="acquireRetryDelay" value="1000"/>
        <property name="autoCommitOnClose" value="false"/>
        <property name="checkoutTimeout" value="0"/>
        <property name="idleConnectionTestPeriod" value="120"/>
        <property name="maxIdleTime" value="60"/>
        <property name="testConnectionOnCheckin" value="false"/>
        <property name="maxStatements" value="8"/>
        <property name="maxStatementsPerConnection" value="5"/>
        <property name="unreturnedConnectionTimeout" value="25"/>
    </bean>
    <!-- mybatis文件配置,配置SqlSessionFactoryBean类,扫描所有mapper文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 指定数据源 -->
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:mapping/*Mapper.xml"/>
    </bean>
    <!-- spring与mybatis整合配置,org.mybatis.spring.mapper.MapperScannerConfigurer类,扫描所有dao-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="dao"/>
    </bean>
    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!-- 使用spring的方式配置typeHandler-->
    <bean id="listStringTypeHandler" class="common.ListTypeHandler"/>
</beans>

三,为了让spring的IOC配置文件不那么臃肿,可以单独写个spring-mybatis.xml文件来表示spring对mybatis进行整合。在application.xml中我们引入spring-mybatis.xml即可。其中spring-mybatis.xml的配置可以完全参考方法二中的文件。

        application.xml如下:

<?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"
       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">


    <!-- 配置component所在的包,自动加载需要管理的Bean -->
    <context:component-scan base-package="controller,service,dao"/>
    <!-- 引入spring-mybatis.xml文件 -->
    <import resource="spring-mybatis.xml"/>
</beans>

 

总结:

web.xml 里配置 spring的IOC文件(applicationg.xml) 路径,然后 spring 里包含各个子配置文件,名字随便吧,只是为了清晰。因为spring-mvc是spring的模块,自动集成,可以在web.xml中直接配置spring-mvc的配置文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值