springboot整合mybatis+mysql+druid 多个数据源
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了springboot整合mybatis+mysql+druid 多个数据源,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3440字,纯文字阅读大概需要5分钟。
内容图文
![springboot整合mybatis+mysql+druid 多个数据源](/upload/InfoBanner/zyjiaocheng/860/a20a1b1a84ee4cd99300428e246fa08f.jpg)
springboot+mybatis+druid 多数据源
1. 创建maven项目,引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.5</version> <!--低版本可以解决mybatis不支持LocalDateTime问题-->
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--druid数据源 start-->
<!--配置druid多数据源时,要使用druid-spring-boot-starter包,否则会报错
java: 程序包com.alibaba.druid.spring.boot.autoconfigure不存在
-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
<!--druid数据源 end-->
2. 配置多数据源
- 配置数据库连接
application.yml
spring:
datasource:
# 数据源1
url: jdbc:mysql://****:3306/dataSourceManagement?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
#数据源2
icp:
url: jdbc:mysql://****:3306/icp_rule?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
-
数据源配置类(druid配置,mybatis配置),通过
@MapperScan(basePackages = "com.example.datasource.mapper",sqlSessionTemplateRef = "primarySqlSessionTemplate")
注解将数据源与mapper文件对应- 数据源1配置类
@Configuration @MapperScan(basePackages = "com.example.datasource.mapper",sqlSessionTemplateRef = "primarySqlSessionTemplate") public class PrimaryDataSourceConfig { /** * 数据源配置 * * @return */ @Bean @ConfigurationProperties(prefix = "spring.datasource") DataSource primaryDs() { // 如果使用 druid 作为连接池,则需要使用DruidDataSourceBuilder return DruidDataSourceBuilder.create().build(); } /** * mybatis配置SqlSessionFactory和SqlSessionTemplate * * @return */ @Bean SqlSessionFactory primarySqlSessionFactory() { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(primaryDs()); SqlSessionFactory sqlSessionFactory = null; try { sqlSessionFactory = sqlSessionFactoryBean.getObject(); } catch (Exception e) { e.printStackTrace(); } return sqlSessionFactory; } @Bean SqlSessionTemplate primarySqlSessionTemplate() { return new SqlSessionTemplate(primarySqlSessionFactory()); } }
- 数据源2配置类
@Configuration @MapperScan(basePackages = "com.example.datasource.icpMapper", sqlSessionTemplateRef = "icpSqlSessionTemplate") public class IcpDataSourceConfig { /** * 数据源配置 * * @return */ @Bean @ConfigurationProperties(prefix = "spring.datasource.icp") DataSource icpDs() { // 如果使用 druid 作为连接池,则需要使用DruidDataSourceBuilder return DruidDataSourceBuilder.create().build(); } /** * mybatis配置SqlSessionFactory和SqlSessionTemplate * * @return */ @Bean SqlSessionFactory icpSqlSessionFactory() { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(icpDs()); SqlSessionFactory sqlSessionFactory = null; try { sqlSessionFactory = sqlSessionFactoryBean.getObject(); } catch (Exception e) { e.printStackTrace(); } return sqlSessionFactory; } @Bean SqlSessionTemplate icpSqlSessionTemplate() { return new SqlSessionTemplate(icpSqlSessionFactory()); } }
-
完成,接下来编写mapper,数据源1的mapper写在
mapper
目录下,数据源2的mapper写在icpMapper
目录项,再service层注入即可使用
内容总结
以上是互联网集市为您收集整理的springboot整合mybatis+mysql+druid 多个数据源全部内容,希望文章能够帮你解决springboot整合mybatis+mysql+druid 多个数据源所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。