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. w4sp-lab安装

    扯淡 i春秋有个答题活动,苟了个奖品,我选了一本书:<wireshark与metasploit实战指南>,里面有个配套环境,本来看着书上说使用docker搭建的,以为很简单,只需要pull ...

  2. Linux(Centos)安装中文字体库(文档中文字符不显示)

    yum -y install fontconfig 在/usr/shared/fonts目录下新建一个目录chinese 然后打开windows本地的字体库 将这里面的所有文件上传到centos里我们 ...

  3. table中tr、td标签设置只读,不能修改(readonly属性)

    在不能修改的位置加上代码:onselectstart="return false" οnselect="document.selection.empty()" ...

  4. 【LeetCode】1. Two Sum 两数之和

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:two sum, 两数之和,题解,leetcode, 力 ...

  5. B. Petya and Exam

    B. Petya and Exam 题目链接 题意 给你一串字符,在这个串中所有出现的字符都是\(good\)字符,未出现的都是\(bad\)字符, 然后给你另一串字符,这个字符串中有两个特殊的字符, ...

  6. 响应式网页设计(Bootstrap)

    Bootstrap官网 AOS官网 Chrome官方教程 Chrome教程 Bootstrap官网中有许多Bootstrap网站示例,大家可以参考

  7. JS调用摄像头拍照,编辑jscam.swf自定义清晰度,兼容IE

    超级简单自定义宽高的jscam.swf文件: 下载swfmill,地址:http://download.csdn.net/download/wu3431214/9967414 下载mtasc,地址:h ...

  8. 深度探索 OpenStack Neutron:BGP(1) 【转载】

    3.4 BGP 原文地址:http://mp.weixin.qq.com/s?src=3&timestamp=1500043305&ver=1&signature=XwiIVV ...

  9. js处理复杂数据格式数组嵌套对象,对象嵌套数组,reduce处理数据格式

    let list=[ {id:1,name:'a'}, {id:1,name:'b'}, {id:1,name:'c'}, {id:2,name:'A'}, {id:2,name:'B'}, {id: ...

  10. CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案

    CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案台湾安格AG9311是一款TYPEC转HDMI带PD3.0的音视频转换芯片,它主要用在USB TYPEC拓展坞或者USB ...