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>

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

时间: 2025-01-02 14:30:18

Spring 数据源配置一:单一数据源的相关文章

Spring 数据源配置二:多数据源

通过上一节  Spring 数据源配置一: 单一数据源  我们了解单一数据源的配置, 这里我们继续多个数据源的配置 如下(applicationContent.xml 内容) 一:  Spring  配置: <!-- MYSQL 配置 --> <bean id="mysqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <p

spring hibernate配置切换数据源,实现读写分离

spring的配置如下 <!-- 主数据源--> <bean id="masterDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <prope

spring基于通用Dao的多数据源配置

有时候在一个项目中会连接多个数据库,须要在spring中配置多个数据源,近期就遇到了这个问题,因为我的项目之前是基于通用Dao的,配置的时候问题不断.这样的方式和资源文件冲突:扫描映射文件的话,SqlSessionFactory的bean名字必须是sqlSessionFactory 他读不到sqlSessioNFactory2或者其它名字,终于解决方法例如以下: 1.在项目中增加例如以下类MultipleDataSource.java package com.etoak.util; import

spring基于通用Dao的多数据源配置详解【ds1】

spring基于通用Dao的多数据源配置详解 有时候在一个项目中会连接多个数据库,需要在spring中配置多个数据源,最近就遇到了这个问题,由于我的项目之前是基于通用Dao的,配置的时候问题不断,这种方式和资源文件冲突:扫描映射文件的话,SqlSessionFactory的bean名字必须是sqlSessionFactory 他读不到sqlSessioNFactory2或者其他名字,最终解决方法如下: 1.在项目中加入如下类MultipleDataSource.java ? 1 2 3 4 5

搞定SpringBoot多数据源(2):动态数据源

目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3.2.1 动态数据源配置 3.2.2 动态选择数据源 3.2.3 动态数据源使用 3.3 使用 AOP 选择数据源 3.3.1 定义数据源注解 3.3.2 定义数据源切面 3.3.3 使用 AOP 进行数据源切换 4. 再思考一下 5. 总结 参考资料 往期文章 一句话概括:使用动态数据源对多个数据库

Spring动态配置多数据源

Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据. 基本信息 1.Spring配置多数据源的方式和具体使用过程. 2.Spring对于多数据源,以数据库表为参照,大体上可以分成两大类情况: 一是,表级上的跨数据库.即,对于不同的数据库却有相同的表(表名和表结构完全相

spring boot 多数据源配置(多种数据库)

最近一段时间在使用spring boot开发项目,其中有一个项目用到了多数据源的配置,网上的资料还是不太多,走了好多才找到一个合适的,把自己写的分享一下,做个笔记,以后也许有用,第一次写博客,不好勿喷!! 首先介绍下我的业务场景,此项目用到了两种数据库,一个是mysql,另一个是sqlserver, 首先第一步需要在application.yml中将多数据源的配置信息进行配置, mysql数据源: spring: datasource: driverClassName: com.mysql.jd

Spring+Mybatis多数据源配置

一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:3306/test1?useUnicode=true&characterEncoding=UTF-8 ds1.username=hhh ds1.password=123456 ds2.driverClassName=oracle.jdbc.OracleDriver ds2.url=jdbc:mysql:/

搭建spring工程配置数据源连接池

Spring作为一个优秀的开源框架,越来越为大家所熟知,前段时间用搭了个spring工程来管理数据库连接池,没有借助Eclipse纯手工搭建,网上此类文章不多,这里给大家分享一下,也作为一个手记. 工程结构: 注意:src目录下的applicationContext.xml是单元测试用的,作为web工程的话就使用WEB-INF下的applicationContext.xml. 1.下载jar包 这里需要下载很多spring的jar包,推荐去官网下载,很多人会说官网只提供maven和gradle下