参考1: https://www.cnblogs.com/tangzekai/p/7782773.html

参考2  https://blog.csdn.net/baochanghong/article/details/54134018

jdbcTemplate:

List<ReportDetailInfo> list = ediPdJdbcTemplate.query(getAfterShipSql,new BeanPropertyRowMapper(ReportDetailInfo.class)) ;

配置:

package com.icil.report.config;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate; @Configuration
public class DataSourceConfig { @Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")//原博主这里加上@Qualify 没有必要 删了也没有影响
@ConfigurationProperties("jdbc.datasource.edi")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
} // @Primary
@Bean(name = "secondaryDataSource")
@Qualifier("secondaryDataSource") //原博主这里加上@Qualify 没有必要 删了也没有影响
@ConfigurationProperties("jdbc.datasource.booking")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
} /**
* @param dataSource
* @return
* @Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法, 并且交给Spring容器管理;从这我们就明白了为啥@Bean是放在方法的注释上了,
* 因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,
* 实现依赖注入
*/
@Bean(name = "primaryJdbcTemplate")
public JdbcTemplate primaryTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
} @Bean(name = "secondaryJdbcTemplate")
public JdbcTemplate secondaryTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
} }

application.properties

### database EDI configure
jdbc.datasource.edi.jdbc-url=jdbc:mysql:///EDI
jdbc.datasource.edi.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.datasource.edi.username=root
jdbc.datasource.edi.password=hhaa
jdbc.datasource.edi.sql-script-encoding=UTF- ### database booking configure
jdbc.datasource.booking.jdbc-url=jdbc:mysql:///booking
jdbc.datasource.booking.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.datasource.booking.username=root
jdbc.datasource.booking.password=hahahaha
jdbc.datasource.booking.sql-script-encoding=UTF-

test:

package top.zekk.twodatasource;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class)
@SpringBootTest
public class TwoDatasourceApplicationTests { @Autowired
/*@Qualify 多个同类型bean?存在时 Spring不知道应该绑定哪个实现类
指定绑定的类名@Bean(name="**")
*/
@Qualifier("primaryJdbcTemplate")
protected JdbcTemplate jdbcTemplate1; @Autowired
//@Qualify 多个同类型bean?存在时 指定绑定的类名@Bean(name="**")
@Qualifier("secondaryJdbcTemplate")
protected JdbcTemplate jdbcTemplate2; @Before //首先执行清空数据库操作
public void setUp(){
jdbcTemplate1.update("DELETE FROM USER ");
jdbcTemplate2.update("DELETE FROM USER ");
} @Test
public void test(){
jdbcTemplate1.update
("INSERT INTO USER (id,name,age) VALUES (?,?,?)",,"aaa",);
jdbcTemplate2.update
("INSERT INTO USER (id,name,age) VALUES (?,?,?)",,"bbb",);
jdbcTemplate2.update
("INSERT INTO USER (id,name,age) VALUES (?,?,?)",,"bbb",); Assert.assertEquals("",jdbcTemplate1.queryForObject("select count(1) from user",String.class)); Assert.assertEquals("",jdbcTemplate2.queryForObject("select count(1) from user",String.class));
} }

JdbcTemplate 多数据源 jdbc的更多相关文章

  1. Spring Boot之JdbcTemplate多数据源配置与使用

    之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.propertie ...

  2. springboot之JdbcTemplate单数据源使用

    本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...

  3. Spring学习笔记:jdbcTemplate和数据源配置

    一.使用Spring框架jdbcTemplate实现数据库的增删改查 1.数据库 /* SQLyog Ultimate v8.32 MySQL - 5.7.19-log : Database - in ...

  4. Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源

    多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...

  5. 使用Spring的jdbcTemplate进一步简化JDBC操作

    先看applicationContext.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <b ...

  6. Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法

    以User为操作对象 package com.swift.jdbc; public class User { private Long user_id; private String user_cod ...

  7. Spring框架针对dao层的jdbcTemplate操作之jdbc数据库连接原始操作方法 所需安装包下载

    crud指数据库或者持久层的基本操作,包括 增加(Create).读取查询(Retrieve 取回).更新(Update)和删除(Delete) Spring不仅对JDBC进行了封装,也对Hibern ...

  8. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. (四)SpringBoot2.0基础篇- 多数据源,JdbcTemplate和JpaRepository

    在日常开发中,经常会遇到多个数据源的问题,而SpringBoot也有相关API:Configure Two DataSources:https://docs.spring.io/spring-boot ...

随机推荐

  1. LeetCode - Backspace String Compare

    Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...

  2. mysql的基础用法,水一下

    #和上一篇是一起的,上一篇就是为这个做insert <blockquote>/*思考题*/ create database spj; use spj;create table s( sno ...

  3. DataGrip for Mac破解步骤详解 亲测好用

    https://blog.csdn.net/le945926/article/details/81912085

  4. c++——智能指针学习(shared_ptr和weak_ptr)

    先看一个例子:Stark和Targaryen家族你中有我,我中有你.我们设计以下类企图避免内存泄漏,使得析构函数都能调用到: #include<iostream> #include< ...

  5. C#集合类型大揭秘 【转载】

    [地址]https://www.cnblogs.com/songwenjie/p/9185790.html 集合是.NET FCL(Framework Class Library)的重要组成部分,我们 ...

  6. py-day4-3 python 内置函数 man和mix的高级使用

    ### man和mix的高级使用 age_dic={'xiaoma':18,'zhangfei':20,'xiaowang':36,'lihao':13,} print(max(age_dic.val ...

  7. CPU的核、进程和线程

    转自https://www.cnblogs.com/-new/p/7234332.html 一.CPU与核心 物理核 物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数 虚拟核 所谓的 ...

  8. c#委托之浅析

    前言: 这章我们将弄懂,委托是什么?有什么作用?在什么样的场景下可以启到什么作用? 委托适用的场景:当确定处理一个任务时,不确定其处理任务的方法时可使用,这样可以提高扩展性,调用符合条件的处理方法,避 ...

  9. JavaScript最后的课程笔记

    一.快捷位置和尺寸 DOM已经提供给我们计算后的样式,但是还觉得不方便,所以DOM又提供给我们一些API: ele.offsetLeft ele.offsetTop ele.offsetWidth e ...

  10. java8与函数编程资料

    Functional programming Java 8 idioms Java SE 8's new Streams API Spring 技术布道师 Josh Long 来华:用 Show 代码 ...