我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sharding-jdbc多数据源配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sharding-jdbc多数据源配置

通过sharding-jdbc做分表这里就不多做介绍了,需要的可以看上一片文章

当项目中配置了多数据源,并且其中一个数据源需要使用sharding-jdbc分表时,配置如下

  1. 导入shardingjdbc依赖

          org.apache.shardingsphere        sharding-jdbc-spring-boot-starter        4.0.1 

这里使用的是4.0.1的配置,和上篇的3.1.0差别不大,详细配置大伙可以上官网查阅。

  1. 多数据源配置类

shardingsphere数据源初始化

package com.efuav.parkingapron.config;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;import com.zaxxer.hikari.HikariDataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.shardingsphere.api.config.sharding.KeyGeneratorConfiguration;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.strategy.StandardShardingStrategyConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;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.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;import java.util.Properties;@Configuration@MapperScan(basePackages = "com.efuav.parkingapron.dao.db1", sqlSessionFactoryRef = "db1SqlSessionFactory")public class DataSourceConfig1 {    @Value("${spring.shardingsphere.datasource.efuavsystem.username}")    private String userName;    @Value("${spring.shardingsphere.datasource.efuavsystem.jdbc-url}")    private String url;    @Value("${spring.shardingsphere.datasource.efuavsystem.password}")    private String userPwd;    @Value("${spring.shardingsphere.datasource.names}")    private String dataName;//    @Primary // 表示这个数据源是默认数据源, 这个注解必须要加,因为不加的话spring将分不清楚那个为主数据源(默认数据源)//    @Bean(name="db1DataSource")    @ConfigurationProperties(prefix = "spring.datasource.db1") //读取application.yml中的配置参数映射成为一个对象//    public DataSource getDb1DataSource(){////        return DataSourceBuilder.create().build();//    }    @Bean(name = "db1DataSource")    @Qualifier("db1DataSource")    public DataSource deviceDataSource() throws SQLException {        return getShardingDataSource();    }    @Primary    @Bean("db1SqlSessionFactory")    public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();        bean.setDataSource(dataSource);        // mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/db1    @Override    public String doSharding(Collection collection, PreciseShardingValue preciseShardingValue) {        //  UAV07JDE6E0020240        String value = preciseShardingValue.getValue();        int las = value.charAt(value.length() - 1);        String tableName = "ef_uav_realtimedata" + ((las % 4)+1);        log.info("", tableName);        return tableName;    }}

4.yml配置文件

spring:  main:    allow-bean-definition-overriding: true  datasource:    infrared:      jdbc-url: jdbc:mysql://192.168.0.5:13306/infrared?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true      username: root  #用户名      password: 123456 #密码      driver-class-name: com.mysql.cj.jdbc.Driver  #数据库链接驱动      type: com.zaxxer.hikari.HikariDataSource    hikari.minimum-idle: 5    hikari.maximum-pool-size: 15    hikari.auto-commit: true    hikari.idle-timeout: 30000    hikari.pool-name: DatebookHikariCP    # 不小于30s 否则会回到默认的1800秒, 用来设置一个connection在连接池中的存活时间,默认是1800000,即30分钟。如果设置为0,表示存活时间无限大。如果不等于0且小于30秒则会被重置回30分钟。    hikari.max-lifetime: 28800000    hikari.connection-timeout: 30000    hikari.connection-test-query: SELECT 1  shardingsphere:    datasource:      names: efuavsystem      efuavsystem:        jdbc-url: jdbc:mysql://127.0.0.1:3306/ef_uav_system?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true        username: root  #用户名        password: 123456 #密码        driver-class-name: com.mysql.cj.jdbc.Driver  #数据库链接驱动        type: com.zaxxer.hikari.HikariDataSource        # 水平拆分的数据库(表) 配置分库 + 分表策略 行表达式分片策略#    sharding:#      tables:#        ef_uav_realtimedata:#          actual-data-nodes: efuavsystem.ef_uav_realtimedata$->{1..5}#          table-strategy:#            standard:#              precise-algorithm-class-name: com.efuav.parkingapron.config.UavPreciseShardingAlgorithm#              sharding-column: uav_id    # 打印执行的数据库#    props:#      sql:#        show: true

这样就不会冲突,以上就是sharding-jdbc多数据源配置了。

记录....

来源地址:https://blog.csdn.net/m0_61367109/article/details/129398941

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sharding-jdbc多数据源配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

weblogic如何配置JDBC数据源

小编给大家分享一下weblogic如何配置JDBC数据源,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.概述 GridLink是WebLogic 10.3.4版
2023-06-03

springboot多数据源配置

简介 开发当中经常会遇到需要进行多库多表数据整合的需求,在无法拆分项目的情况下,就需要在一个项目中配置多数据源,实现多库数据的整合。本文是在springboot框架的基础上进行的多数据源配置,可参考,也欢迎指正 1、第一步:applicat
2023-08-24

Sharding-JDBC 使用入门和基本配置

【技术沙龙002期】数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名一、什么是Sharding-JDBCSharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用
2023-06-04

springboot怎么配置sharding-jdbc水平分表

这篇文章主要讲解了“springboot怎么配置sharding-jdbc水平分表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot怎么配置sharding-jdbc水平分表
2023-06-21

ruoyi(若依)配置多数据源(mysql+postgresql),rouyi(Springboot)多数据源设置

一、除了MySQL驱动,我们还需要用到postgresql的驱动,所以我们先把驱动的依赖给导入进来 org.postgresql postgresql
2023-08-17

springboot如何配置多数据源

在Spring Boot中配置多数据源可以通过创建多个DataSource bean,并使用@Primary和@Qualifier注解来指定默认数据源和其他数据源,然后在Repository类中使用@Qualifier注解来指定要使用的数据
springboot如何配置多数据源
2024-04-08

springboot怎么配置多数据源

在Spring Boot中配置多个数据源可以通过以下步骤来实现:在pom.xml文件中添加Spring Boot对多数据源的支持依赖:org.springframework.bootspring-boot-starter-data-jpac
2023-10-23

java多数据源怎么配置

在Java中配置多数据源可以通过以下步骤进行:1. 导入相关的依赖包,如`spring-boot-starter-jdbc`、`druid`等。2. 在`application.properties`或`application.yml`文件
2023-10-09

springboot中如何配置多数据源

这期内容当中小编将会给大家带来有关springboot中如何配置多数据源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1
2023-06-15

怎么设置jdbc数据源属性

要设置JDBC数据源属性,需要在应用程序的配置文件中进行配置。具体步骤如下:1. 打开应用程序的配置文件,通常是一个XML文件或一个属性文件。2. 在配置文件中找到数据源的设置部分。3. 根据需要设置数据源的属性,常见的属性包括:- 数据库
2023-09-08

怎么在SpringBoot中配置多数据源

本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一
2023-06-14

怎么使用SpringBoot配置多数据源

这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom.
2023-06-29

详解SpringBoot和Mybatis配置多数据源

目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑。在SpringBoot中也可以实现多数据源并配合Mybatis框架编写xml文件来执行SQL。在SpringBoot中,配
2023-05-31

springboot下配置多数据源的方法

一、springboot 简介SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring
2023-05-31

编程热搜

目录