Spring 数据源配置一:单一数据源

最近遇到一个项目,需要访问都多个数据源,并且数据库是不同厂商(mysql,  sqlserver).

 所以对此做了一些研究,这里咱们采用渐进的方式来展开,先谈谈单一数据源配置。(稍后有时间会陆续补充其他文章)

先上代码吧:

1.   database.properties 配置文件(配置多个数据源的 属性值)

 1 #MYSQL
 2 mysql.jdbc.driverClassName=com.mysql.jdbc.Driver
 3 mysql.jdbc.url=jdbc:mysql://localhost:3306/dragonfly?useUnicode=true&characterEncoding=utf-8
 4 mysql.jdbc.username=master
 5 mysql.jdbc.password=Master_12345
 6 # SQL SERVER
 7 mssql.jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
 8 mssql.jdbc.url=jdbc:jtds:sqlserver://192.168.1.153:1433/MES
 9 mssql.jdbc.username=SA
10 mssql.jdbc.password=123456

2.   引入上述配置文件到applicationContext.xml 中

    <bean  id="configProperties"  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreResourceNotFound" value="false" />
        <property name="locations">
            <list>
                <!-- 这里支持多种寻址方式:classpath和file -->
                 <value>classpath:/database.properties</value>
                 <value>classpath:/config.properties</value>  
                <!-- 推荐使用file的方式引入,这样可以将配置和代码分离 -->
               <!-- <value>file:/opt/demo/config/demo-message.properties</value>-->
            </list>
        </property>
    </bean>

 

3.  配置datasource  /   sessionFactory  / MapperScannerConfigure

 <bean id="mysqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>${mysql.jdbc.driverClassName}</value></property>
        <property name="url"><value>${mysql.jdbc.url}</value></property>
        <property name="username"><value>${mysql.jdbc.username}</value></property>
        <property name="password"><value>${mysql.jdbc.password}</value></property>
    </bean>

   
    <bean id="mysqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="mysqlDataSource" />
        <!-- 指定sqlMapConfig总配置文件,订制的environment在spring容器中不在生效-->
         <property  name="configLocation"  value="classpath:mybatis-config-mysql.xml"/>
        <!--指定实体类映射文件,可以指定同时指定某一包以及子包下面的所有配置文件,mapperLocations和configLocation有一个即可,
         当需要为实体类指定别名时,可指定configLocation属性,再在mybatis总配置文件中采用mapper引入实体类映射文件 -->
         <property  name="mapperLocations">
               <list>
                <value>classpath*:/mysqlmapper/*Mapper.xml</value>
            </list>
         </property>
    </bean>

    <bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.robin.it.permission.dao" />
        <!-- optional unless there are multiple session factories defined -->
        <property name="sqlSessionFactoryBeanName" value="mysqlSessionFactory" />
    </bean>
     

注: 黄色高亮部分大家请注意,这个要和下一张将要讲的多数据源有关系。

4.    Spring + Mybatis  的分页控件配置文件: mybatis-config-mysql.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">

<configuration>
     <settings>
        <setting name="cacheEnabled" value="false" />
        <setting name="lazyLoadingEnabled" value="false" />
        <setting name="aggressiveLazyLoading" value="false"/>
        <setting name="jdbcTypeForNull" value="NULL"/>
    </settings>
    <plugins>
        <plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
            <property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"/>
        </plugin>
    </plugins>
    
</configuration>

 

至此, 单一数据源的配置就完成了! (暂时不提供源代码, 请见谅)

 

posted @ 2015-08-06 00:07  yql_dragonfly  阅读(782)  评论(0编辑  收藏  举报