maven依赖,需要注意的是mysql使用的版本

 1     <dependencies>
2 <dependency>
3 <groupId>com.oracle.database.jdbc</groupId>
4 <artifactId>ojdbc8</artifactId>
5 <scope>runtime</scope>
6 </dependency>
7 <dependency>
8 <groupId>mysql</groupId>
9 <artifactId>mysql-connector-java</artifactId>
10 <version>5.1.30</version>
11 </dependency>
12 <!--Druid依赖代码 收藏代码-->
13 <dependency>
14 <groupId>com.alibaba</groupId>
15 <artifactId>druid</artifactId>
16 <version>0.2.15</version>
17 </dependency>
18 </dependencies>

application.properties配置文件

 1 #Spring boot视图配置
2 spring.mvc.view.prefix=/WEB-INF/view/
3 spring.mvc.view.suffix=.jsp
4 #静态文件访问配置
5 spring.mvc.static-path-pattern=/static/**
6
7 #加载Mybatis的xml 在:resources下
8 mybatis.mapper-locations=classpath:/com/spring/login/mapper/mysql/*.xml
9
10 #设置运行的端口
11 server.port=8080
12
13 #配置字符编码
14 server.servlet.encoding.enabled=true
15 server.servlet.encoding.force=true
16 server.servlet.encoding.charset=UTF-8
17
18 server.tomcat.uri-encoding=UTF-8
19
20 #取消thymeleaf 严格检查
21 spring.thymeleaf.mode=LEGACYHTML5
22
23 #连接Oracle数据库
24 oracle.datasource.driver-class-name= oracle.jdbc.driver.OracleDriver
25 oracle.datasource.url= jdbc:oracle:thin:@你的地址:1521/orcl
26 oracle.datasource.username=账号
27 oracle.datasource.password=密码
28
29 #配置连接mySql数据库
30 spring.datasource.url=jdbc:mysql://你的地址:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8
31 spring.datasource.username=账号
32 spring.datasource.password=密码
33 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

看一下目录结构,既,不同的数据库我放在了DAO里不同的包里了,主要是为了区分

在config里新建了两个config类,分别是配置mysql以及oracle数据源使用的,需要注意的是,两个或者多个数据源时,一定要制定一个(只有一个)为主数据源,下面时两个数据源代码

 1 package com.spring.login.config;
2
3 import com.alibaba.druid.pool.DruidDataSource;
4 import org.apache.ibatis.session.SqlSessionFactory;
5 import org.mybatis.spring.SqlSessionFactoryBean;
6 import org.mybatis.spring.SqlSessionTemplate;
7 import org.mybatis.spring.annotation.MapperScan;
8 import org.springframework.beans.factory.annotation.Qualifier;
9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.context.annotation.Bean;
11 import org.springframework.context.annotation.Configuration;
12 import org.springframework.context.annotation.Primary;
13 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
14 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
15
16 import javax.sql.DataSource;
17
18 @SuppressWarnings("all")
19 @Configuration
20 @MapperScan(basePackages = "com.spring.login.dao.mysql", sqlSessionTemplateRef = "mysqlSqlSessionTemplate")
21 public class MysqlDataSourceConfig {
22 @Value("${spring.datasource.url}")
23 private String url;
24 @Value("${spring.datasource.username}")
25 private String user;
26 @Value("${spring.datasource.password}")
27 private String password;
28 @Value("${spring.datasource.driver-class-name}")
29 private String driverClass;
30
31 @Bean(name = "mysqlDataSource")
32 @Primary
33 public DataSource mysqlDataSource() {
34 DruidDataSource dataSource = new DruidDataSource();
35 dataSource.setUrl(url);
36 dataSource.setUsername(user);
37 dataSource.setPassword(password);
38 dataSource.setDriverClassName(driverClass);
39 return (DataSource) dataSource;
40 }
41
42 @Bean(name = "mysqlTransactionManager")
43 @Primary
44 public DataSourceTransactionManager mysqlTransactionManager(@Qualifier("mysqlDataSource") DataSource dataSource) {
45 return new DataSourceTransactionManager(dataSource);
46 }
47
48 @Bean(name = "mysqlSqlSessionFactory")
49 @Primary
50 public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
51 final SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
52 bean.setDataSource(dataSource);
53 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:/com/spring/login/mapper/mysql/*.xml"));
54 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
55 configuration.setMapUnderscoreToCamelCase(true);
56 configuration.setCallSettersOnNulls(true);
57 configuration.setLogImpl(org.apache.ibatis.logging.stdout.StdOutImpl.class);
58 bean.setConfiguration(configuration);
59 return bean.getObject();
60 }
61
62 @Bean(name = "mysqlSqlSessionTemplate")
63 @Primary
64 public SqlSessionTemplate mysqlSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
65 return new SqlSessionTemplate(sqlSessionFactory);
66 }
67 }

oracle连接数据源

 1 package com.spring.login.config;
2
3 import com.alibaba.druid.pool.DruidDataSource;
4 import org.apache.ibatis.session.SqlSessionFactory;
5 import org.mybatis.spring.SqlSessionFactoryBean;
6 import org.mybatis.spring.SqlSessionTemplate;
7 import org.mybatis.spring.annotation.MapperScan;
8 import org.springframework.beans.factory.annotation.Qualifier;
9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.context.annotation.Bean;
11 import org.springframework.context.annotation.Configuration;
12 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
13 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
14
15 import javax.sql.DataSource;
16
17 @SuppressWarnings("all")
18 @Configuration
19 @MapperScan(basePackages = "com.spring.login.dao.oracle", sqlSessionTemplateRef = "oracleSqlSessionTemplate")
20 public class OracleDataSourceConfig {
21 @Value("${oracle.datasource.url}")
22 private String url;
23
24 @Value("${oracle.datasource.username}")
25 private String user;
26
27 @Value("${oracle.datasource.password}")
28 private String password;
29
30 @Value("${oracle.datasource.driver-class-name}")
31 private String driverClass;
32
33 @Bean(name = "oracleDataSource")
34 public DataSource oracleDataSource() {
35 DruidDataSource dataSource = new DruidDataSource();
36 dataSource.setDriverClassName(driverClass);
37 dataSource.setUrl(url);
38 dataSource.setUsername(user);
39 dataSource.setPassword(password);
40 return dataSource;
41 }
42
43 @Bean(name = "oracleTransactionManager")
44 public DataSourceTransactionManager oracleTransactionManager() {
45 return new DataSourceTransactionManager(oracleDataSource());
46 }
47
48 @Bean(name = "oracleSqlSessionFactory")
49 public SqlSessionFactory oracleSqlSessionFactory(@Qualifier("oracleDataSource") DataSource oracleDataSource) throws Exception {
50 final SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
51 bean.setDataSource(oracleDataSource);
52 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:com.spring.login.mapper.oracle/*.xml"));
53 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
54 configuration.setMapUnderscoreToCamelCase(true);
55 configuration.setCallSettersOnNulls(true);
56 configuration.setLogImpl(org.apache.ibatis.logging.stdout.StdOutImpl.class);
57 bean.setConfiguration(configuration);
58 return bean.getObject();
59 }
60
61 @Bean(name = "oracleSqlSessionTemplate")
62 public SqlSessionTemplate oracleSqlSessionTemplate(@Qualifier("oracleSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
63 return new SqlSessionTemplate(sqlSessionFactory);
64 }
65 }

其他的调用和单数据源一致我这里就不多讲了,后面在启动类上加载注入需要的文件

 1 package com.spring;
2
3 import org.mybatis.spring.annotation.MapperScan;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.boot.autoconfigure.SpringBootApplication;
6 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
7 import org.springframework.stereotype.Controller;
8 import org.springframework.web.bind.annotation.RequestMapping;
9
10 /**
11 * 表示取消数据源的自动配置
12 */
13 @Controller
14 @RequestMapping("/")
15 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = {"com.*"})
16 @MapperScan({"com.spring.login.mapper.mysql"})
17 public class WebApplication {
18
19 public static void main(String[] args) {
20 SpringApplication.run(WebApplication.class, args);
21 System.out.println("项目启动成功!");
22 }
23
24 }

数据库查询信息

Mybatis查询结果

Springboot整合Mybatis,连接多个数据库(Mysql+Oracle)的更多相关文章

  1. springboot整合mybatis连接mysql数据库出现SQLException异常

    在springboot整合mybatis连接数据库的时候,项目中遇到一个SQLException,我检查了properties配置文件,看数据源有没有配错,检查有没有打错字,在数据库中把sql语句查询 ...

  2. springboot整合mybatis连接oracle

    pom.xml: <!-- 链接:https://pan.baidu.com/s/1agHs5vWeXf90r3OEeVGniw 提取码:wsgm --> <dependency&g ...

  3. SpringBoot 整合 Mybatis + Mysql——XML配置方式

    一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两 ...

  4. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例

    1.前言 本文主要介绍使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例. 使用技术:SpringBoot.mybatis.shiro.thymeleaf.pagehelp ...

  5. SpringBoot整合MyBatis,HiKari、Druid连接池的使用

    SpringBoot整合MyBatis 1.创建项目时勾选mybatis.数据库驱动.   mysql驱动默认是8.x的版本,如果要使用5.x的版本,创建后到pom.xml中改. 也可以手动添加依赖 ...

  6. Canal 实战 | 第一篇:SpringBoot 整合 Canal + RabbitMQ 实现监听 MySQL 数据库同步更新 Redis 缓存

    一. Canal 简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同 ...

  7. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  8. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  9. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

  10. SpringBoot整合Mybatis之进门篇

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

随机推荐

  1. Jenkins制品管理

    目录 一.简介 二.Jenkins管理制品 三.Nexus maven上传 jenkins上传 管理Docker镜像 管理raw 四.拷贝制品 五.版本号 Version Number 一.简介 制品 ...

  2. h5文件下载

    // type1 await getFile(fileUrl).then((res) => { console.log('download',res); let bFile = window.U ...

  3. Mybatis动态SQL语句使用

    在实际开发中,有时候查询条件可能是不确定的,查询条件可能有多条也可能没有,这时候就需要用到动态的sql语句拼接功能. 一.if.where.sql标签的使用 需求:在一些高级查询中,查询条件存在的个数 ...

  4. 如何利用火焰图定位 Java 的 CPU 性能问题

     常见 CPU 性能问题 你所负责的服务(下称:服务)是否遇到过以下现象: 休息的时候,手机突然收到大量告警短信,提示服务的 99.9 line 从 20ms 飙升至 10s: 正在敲代码实现业务功能 ...

  5. C# VS 断点进不去,显示红色空心右下角黄色感叹号图标

    今天开发同事遇到了一个诡异的问题,使用 Visual Studio 调式 C# 代码时,断电位置一直显示红色空心右下角有黄色感叹号的图标(下图所示),断点调试死活进不去. 几个同事过去看了下,都隐约感 ...

  6. Spring 5| 轻量级的开源JavaEE框架

    一.Spring框架的概述 1.Spring是轻量级的开源的JavaEE框架 2.Spring可以解决企业应用开发的复杂性 3.Spring有两个核心的部分:IOC(控制反转)和AOP(面向切面编程) ...

  7. LuoguP7505 「Wdsr-2.5」小小的埴轮兵团 题解

    Content 给出一个范围为 \([-k,k]\) 的数轴,数轴上有 \(n\) 个点,第 \(i\) 个点的位置为 \(a_i\).有 \(m\) 次操作,有且仅有以下三种: 1 x:所有点往右移 ...

  8. SpringCloud (一) Eureka

    Eureka Eureka 是一个服务治理组件,它主要包括服务注册和服务发现,主要用来搭建服务注册中心. Eureka 是一个基于 REST 的服务,用来定位服务,进行中间层服务器的负载均衡和故障转移 ...

  9. 再识requests

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  10. JAVA实现websocket客户端

    pom依赖 <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-We ...