精华内容
下载资源
问答
  • 双数据源

    2018-06-27 18:23:48
    //切换数据源,设置后 就OK了。可以随时切换过来(在controller层切换)    } catch (Exception e) { e.printStackTrace(); }finally { DynamicDataSource.clearCustomerType(); ...
    <bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <!-- 基本信息 -->  
           <property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
           <property name="url"><value>${jdbc.url}</value></property>
           <property name="username"><value>${jdbc.username}</value></property>
           <property name="password"><value>${jdbc.password}</value></property>
           
       <!-- 其他配置 -->
            <!--maxActive: 最大连接数量-->    
            <property name="maxActive" value="15"/>  
            <!--minIdle: 最小空闲连接-->    
            <property name="minIdle" value="5"/>  
            <!--maxIdle: 最大空闲连接-->    
            <property name="maxIdle" value="10"/>  
            <!--initialSize: 初始化连接-->    
            <property name="initialSize" value="5"/>  
            <!-- 连接被泄露时是否打印 -->  
            <property name="logAbandoned" value="true"/>  
            <!--removeAbandoned: 是否自动回收超时连接-->    
            <property name="removeAbandoned"  value="true"/>  
            <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->    
            <property name="removeAbandonedTimeout" value="10"/>  
            <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->  
            <property name="maxWait" value="10000"/>  
            <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->  
            <property name="timeBetweenEvictionRunsMillis" value="18000"/>  
            <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->  
            <property name="numTestsPerEvictionRun" value="5"/>  
            <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->  
            <property name="minEvictableIdleTimeMillis" value="18000"/> 
            <!-- Mysql八小时的问题-->  
            <property name="testOnBorrow" value="true"/> 
            <property name="validationQuery" value="select 1"/> 
    </bean>

    <bean id="oracleDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <!-- 基本信息 -->  
           <property name="driverClassName"><value>${jdbc.oracleDriver}</value></property>
           <property name="url"><value>${jdbc.oracleUrl}</value></property>
           <property name="username"><value>${jdbc.oracleUN}</value></property>
           <property name="password"><value>${jdbc.oraclePwd}</value></property>
           
       <!-- 其他配置 -->
            <!--maxActive: 最大连接数量-->    
            <property name="maxActive" value="15"/>  
            <!--minIdle: 最小空闲连接-->    
            <property name="minIdle" value="5"/>  
            <!--maxIdle: 最大空闲连接-->    
            <property name="maxIdle" value="10"/>  
            <!--initialSize: 初始化连接-->    
            <property name="initialSize" value="5"/>  
            <!-- 连接被泄露时是否打印 -->  
            <property name="logAbandoned" value="true"/>  
            <!--removeAbandoned: 是否自动回收超时连接-->    
            <property name="removeAbandoned"  value="true"/>  
            <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->    
            <property name="removeAbandonedTimeout" value="10"/>  
            <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->  
            <property name="maxWait" value="10000"/>  
            <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->  
            <property name="timeBetweenEvictionRunsMillis" value="18000"/>  
            <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->  
            <property name="numTestsPerEvictionRun" value="5"/>  
            <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->  
            <property name="minEvictableIdleTimeMillis" value="18000"/> 
            <!-- Mysql八小时的问题-->  
            <property name="testOnBorrow" value="true"/> 
            <property name="validationQuery" value="select sysdate from dual"/> 
    </bean>

    <bean id="dataSource" class="com.yuhui.util.DynamicDataSource">
             <property name="defaultTargetDataSource" ref="mysqlDataSource"/>
             <property name="targetDataSources">
                 <map>
                     <entry key="mysqlDataSource" value-ref="mysqlDataSource"/>
                     <entry key="oracleDataSource" value-ref="oracleDataSource"/>
                 </map>
             </property>

         </bean>





    import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;


    public class DynamicDataSource extends AbstractRoutingDataSource{




        public static final String  mysqlDataSource= "mysqlDataSource";  
          
        public static final String oracleDataSource = "oracleDataSource";  
        //本地线程,获取当前正在执行的currentThread  
        public static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();   
          
        public static void setCustomerType(String customerType) {  
       
        contextHolder.set(customerType);  
          
        }  
      
        public static String getCustomerType() {  
            return contextHolder.get();       
        }  
      
        public static void clearCustomerType() {  
            contextHolder.remove();  
        }  
      
        @Override  
        protected Object determineCurrentLookupKey() {  
            return getCustomerType();    
        }  


    }




    try {
    DynamicDataSource.clearCustomerType();//重点: 实际操作证明,切换的时候最好清空一下
            DynamicDataSource.setCustomerType(DynamicDataSource.oracleDataSource);//切换数据源,设置后 就OK了。可以随时切换过来(在controller层切换) 
           
    } catch (Exception e) {
    e.printStackTrace();
    }finally {
    DynamicDataSource.clearCustomerType();
    DynamicDataSource.setCustomerType(DynamicDataSource.mysqlDataSource);//切换回主数据源 

    }




    展开全文
  • 自己临时搭建的SpringBoot多数据源连接报表,同时连接Mysql,Oracle数据库Mybatis连接,Druid监控双数据源,Quart执行定时任务,PageHelper分页,前端延用Layui
  • springboot双数据源实战项目,springboot双数据源实战项目
  • 此资源是Maven项目中绑定双数据源代码,一个是Mysql数据源一个是SqlServer数据源
  • springboot双数据源

    2018-05-11 14:31:38
    双数据源 oracle mysql #数据源1 spring.datasource.db1.url=jdbc:mysql://192.168.1.1:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.db1.username=root spring.datasource....
  • 配置双数据源

    2021-03-24 11:48:52
    .首先在yml文件配置 数据源调用:1.使用@ConfigurationProperties注入容器 2.做切面处理根据需求实现ordered接口 我的是需要双数据源切换的

    .首先在yml文件配置
    在这里插入图片描述
    数据源调用:1.使用@ConfigurationProperties注入容器
    2.做切面处理根据需求实现ordered接口在这里插入图片描述
    我的是需要双数据源切换的

    展开全文
  • SpringBoot双数据源配置

    2020-11-25 15:47:58
    双数据源配置

    配置文件

    spring:
      #关键词检索、5G网关组件配置
      datasource:
        name: test
        type: com.alibaba.druid.pool.DruidDataSource
        #   #本地
        db:
          url: jdbc:mysql://localhost:3306/5g?allowMultiQueries=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
        db2:
          url: jdbc:mysql://localhost:3306/5gg?allowMultiQueries=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
    

    写两个类接收配置文件的参数

    @Component
    @ConfigurationProperties(prefix = "spring.datasource.db")
    public class DB {
        private static final Logger logger = LoggerFactory.getLogger(DB.class);
        private String url;
        private String username;
        private String password;
        private String driverClassName;
        省略set,get
    }
    
    @Component
    @ConfigurationProperties(prefix = "spring.datasource.db2")
    public class DB2 {
        private static final Logger logger = LoggerFactory.getLogger(DB2.class);
        private String url;
        private String username;
        private String password;
        private String driverClassName;
      	省略set,get
    }
    

    写两个配置类

    @Configuration
    //只从org.cmic.rcs.dao.db包下读取dao文件,并且该报下的dao使用本datasource
    @MapperScan(basePackages = "org.cmic.rcs.dao.db", sqlSessionTemplateRef = "dbSqlSessionTemplate")
    public class DBConfig {
        private static final Logger logger = LoggerFactory.getLogger(DBConfig.class);
    
        @Bean(name = "dbDataSource")
        //对于多数据源,必须制定primary,否则报错有2个datasource,并且,只能制定一个primary
        @Primary
        //从db从获取配置信息
        public DataSource setDataSource(DB dbc) {
            DruidDataSource ds = new DruidDataSource();
            ds.setUrl(dbc.getUrl());
            ds.setUsername(dbc.getUsername());
            ds.setPassword(dbc.getPassword());
            ds.setDriverClassName(dbc.getDriverClassName());
            return ds;
        }
    
        @Bean(name = "dbSqlSessionFactory")
        @Primary
        public SqlSessionFactory setSqlSessionFactory(@Qualifier("dbDataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            //指定mapper.xml文件存放位置
            bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:org/cmic/rcs/dao/db/*.xml"));
            return bean.getObject();
        }
    
        @Bean(name = "dbSqlSessionTemplate")
        @Primary
        public SqlSessionTemplate setSqlSessionTemplate(@Qualifier("dbSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    }
    
    @Configuration
    //只从org.cmic.rcs.dao.db2包下读取dao文件,并且该报下的dao使用本datasource
    @MapperScan(basePackages = "org.cmic.rcs.dao.db2", sqlSessionTemplateRef = "db2SqlSessionTemplate")
    public class DB2Config {
        private static final Logger logger = LoggerFactory.getLogger(DB2Config.class);
    
        @Bean(name = "db2DataSource")
        public DataSource setDataSource(DB2 dbc) {
            DruidDataSource ds = new DruidDataSource();
            ds.setUrl(dbc.getUrl());
            ds.setUsername(dbc.getUsername());
            ds.setPassword(dbc.getPassword());
            ds.setDriverClassName(dbc.getDriverClassName());
            return ds;
        }
    
        @Bean(name = "db2SqlSessionFactory")
        public SqlSessionFactory setSqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            //设置读取xml文件的位置
            bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:org/cmic/rcs/dao/db2/*.xml"));
            return bean.getObject();
        }
    
        @Bean(name = "db2SqlSessionTemplate")
        public SqlSessionTemplate setSqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    }
    

    对应的dao写两个
    在这里插入图片描述
    对应的mapper写两个在这里插入图片描述
    总体图
    在这里插入图片描述

    展开全文
  • spring boot 双数据源

    2018-02-08 10:59:06
    在我们日常开发中不免遇到多个数据库的情况,我就简单写了个双数据源的配置,自己熟悉也分享给他人。
  • 项目双数据源使用

    2014-08-29 09:37:08
    项目双数据源使用
  • jeesite如何实现双数据源?jeesite如何实现双数据源?jeesite如何实现双数据源?jeesite如何实现双数据源?jeesite如何实现双数据源?jeesite如何实现双数据源?jeesite如何实现双数据源? 如题
  • Spring 配置Oracle和mysql双数据源Spring DataSource配置: ${database.driver} ${database.url} ${database.username} ${database.password} 10 ...

    Spring 配置Oracle和mysql双数据源

    Spring DataSource配置:

    <?xml version="1.0" encoding="UTF-8"?> ${database.driver}${database.url}${database.username}${database.password}10

    欢迎大家阅读《Spring 配备Oracle和MySql双数据源》,跪求各位点评,by 搞代码

    DAO继承配置:

    e7ce419cf2d6ad34d01da2ceb8829eed.png

    微信 赏一包辣条吧~

    023a57327877fb4402bcc76911ec18ea.png

    支付宝 赏一听可乐吧~

    展开全文
  • springboot配置双数据源

    2021-02-23 15:15:50
    研究了有一个星期还是没有配置出双数据源,不得已只能借助于网络,各种搜索网上的 版本也没有找到可行的,可能是我比较菜吧,为了彻底给大家提供一个方便的马上可以使用的双数据源的代码,我最终从Github上找到了 1....
  • 当一个项目中需要调用两个数据库时,这个时候就需要配置双数据源。先配置配置文件然后再Application类上加入:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})这个注解去除掉默认的数据库...
  • 山石彦 | 作者urlify.cn/vQzIne | 来源最近工作中有用到双数据源,一个项目(中台)中需要操作两个不同的数据库。当时考虑到了两种方式,1....配置双数据源(A项目访问d1数据源,B项目配置...双数据源相对复杂一些,但效率...
  • 本资源使用SpringBoot整合Oracle数据库连接双数据源,源码已进行测试真是有效,使用时更改bootstrap.yml数据库配置即可
  • SpringMVC双数据源配置

    2020-02-09 16:05:05
    最近在开发一个项目,需要访问另一个项目的数据,由于两个数据库是部署在同一个服务器上,且本项目只是对另一数据读取,因此决定在项目中使用双数据源配置进行访问。 系统都是基于Sprin个MVC+Mybatis的架构,配置...
  • 在最近的项目开发中,需要用到Mysql和Sqlserverl两种数据库,也就是要进行双数据源的配置。网上看了下,大多比较繁琐,且不够明确。今天分享一个在SpringBoot 中简洁高效配置双数据源的方案。 项目结构如下: ...
  • springboot+mybatis+maven项目配置双数据源demo,内附数据库
  • springboot+mybatis双数据源配置及事务处理
  • SpringMVC配置双数据源

    2017-02-09 12:58:50
    SpringMVC配置双数据源
  • 最近工作中有用到双数据源,一个项目(中台)中需要...双数据源相对复杂一些,但效率比较好,最后决定使用双数据源。 步骤如下: 1.applicationContext.properties配置文件中配置两个数据库连接信息 #db1数据库连接 spr
  • 一、spring双数据源问题 1:配置的两个数据源对于使用的mapper.xml的扫描是需要分开文件夹的,我一个会员,一个代金券的,当我把这两个相关的xml放在同一个目录下,然后两个数据源都加载这个目录,此时,我测试报错,...
  • 注解切换双数据源

    2020-10-29 11:25:20
    Spring Boot配置双数据源使用注解,调取相应的库application.yml配置:添加调取哪个数据源的标记注解,通过注解就能调取相应的库了添加数据库配置Java类使用注解,调取相应的库请参考下方 使用注解,调取相应的库 ...
  • springmvc配置双数据源访问其中一个数据源报错?
  • 已经测试,分享下,spring mvc oracle双数据源,其他如mysql之类修改下sources.properties文件即可,描述可以到这个博客看 http://blog.csdn.net/wangpeng047/article/details/8866239
  • springboot + mybatis +mysql+ sqlserver 双数据源 springaop实现自动切换
  • SpringBoot+Mybatis+druid配置双数据源

    万次阅读 2019-12-28 17:59:09
    最近因为公司业务,数据量比较大,需要进行...中间引入了双数据源处理,也走了很多弯路在此进行记录,仅供参考 1、pom.xml引入相关相关配置 <dependency> <groupId>com.alibaba</groupId> ...
  • SpringBoot配置双数据源,mapper调用时数据源匹配错误问题 错误现象 Caused by: java.sql.SQLSyntaxErrorException: Table 'test.users' doesn't exist at ...
  • springboot集成双数据源

    2019-07-21 12:46:50
    项目开发过程中,经常出现数据库迁移...本章内容,主要使用aop实现双数据源的动态切换。框架:springboot 废话不多说,直接看下文。。。 1、引入aop依赖 <!-- aop --> <dependency> <groupId&g...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,976
精华内容 1,990
关键字:

双数据源