spring-boot 同时配置Oracle和MySQL

Spring Boot 1.5.8.RELEASE同时配置Oracle和MySQL

配置POM文件



    4.0.0

    com.adagio
    demo
    0.0.1-SNAPSHOT
    jar

    multiple-data-sources
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.8.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            mysql
            mysql-connector-java
            runtime
        
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



  • oralce数据库驱动包

    com.oracle
    ojdbc14
    10.2.0.4.0

  • 因为在maven仓库下载不到,就直接下载lib手动导入

配置文件

spring.datasource.primary.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.primary.username=root
spring.datasource.primary.password=root
spring.datasource.primary.driver-class-name=oracle.jdbc.OracleDriver

spring.datasource.secondary.url=jdbc:mysql://localhost:3306/bootdo
spring.datasource.secondary.username=root
spring.datasource.secondary.password=root
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver

数据源配置类

package com.adagio.config;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
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")
    @ConfigurationProperties(prefix="spring.datasource.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "secondaryDataSource")
    @Qualifier("secondaryDataSource")
    @Primary
    @ConfigurationProperties(prefix="spring.datasource.secondary")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
    
    @Bean(name = "primaryJdbcTemplate")
    public JdbcTemplate primaryJdbcTemplate(
            @Qualifier("primaryDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

    @Bean(name = "secondaryJdbcTemplate")
    public JdbcTemplate secondaryJdbcTemplate(
            @Qualifier("secondaryDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }


}

测试类

package com.adagio.web;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CxzdbController {
    @Autowired
    @Qualifier("primaryJdbcTemplate")
    protected JdbcTemplate jdbcTemplate1;

    @Autowired
    @Qualifier("secondaryJdbcTemplate")
    protected JdbcTemplate jdbcTemplate2;
    
//    @Autowired
//    protected JdbcTemplate jdbcTemplate;


    @RequestMapping("/test")
    public List> getCxzdb(){
//        String sql = "SELECT * FROM sys_user";
        
        String sql = "SELECT * FROM USER";
        
        List> resObj = (List>) jdbcTemplate1.execute(new PreparedStatementCreator() {
            
            @Override
            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                return con.prepareStatement(sql);
            }
        }, new PreparedStatementCallback>>() {

            @Override
            public List> doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
                ps.execute();   
                ResultSet rs = ps.getResultSet();   
                while(rs.next()){
                    System.out.println("==" + rs.getString(1));
                    System.out.println("==" + rs.getString(2));
                    System.out.println("==" + rs.getString(3));
                    System.out.println("==" + rs.getString(4));
                    System.out.println("==" + rs.getString(5));
                    
//                    Map map = new HashMap<>();
//                    map.put("id", rs.getString("id"));
                    
                }
                return null;
            }
            
        } );
        return resObj;
    }
}
  • 启动之后访问:http://localhost:8080/test
  • 看后台有打印结果表示配置成功

借鉴:https://gitee.com/didispace/S...

你可能感兴趣的:(java,springboot,oracle,mysql)