返回顶部
首页 > 资讯 > 数据库 >sharding-jdbc多数据源配置
  • 677
分享到

sharding-jdbc多数据源配置

数据库mysqlspringPoweredby金山文档 2023-09-05 07:09:39 677人浏览 泡泡鱼
摘要

通过sharding-jdbc做分表这里就不多做介绍了,需要的可以看上一片文章 当项目中配置了多数据源,并且其中一个数据源需要使用sharding-jdbc分表时,配置如下 导入shardingjdbc依赖 org

通过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

您可能感兴趣的文档:

--结束END--

本文标题: sharding-jdbc多数据源配置

本文链接: https://lsjlt.com/news/394808.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • sharding-jdbc多数据源配置
    通过sharding-jdbc做分表这里就不多做介绍了,需要的可以看上一片文章 当项目中配置了多数据源,并且其中一个数据源需要使用sharding-jdbc分表时,配置如下 导入shardingjdbc依赖 org...
    99+
    2023-09-05
    数据库 mysql spring Powered by 金山文档
  • 多数据源模式JPA整合sharding-jdbc实现数据脱敏
    目录前言引入依赖添加sharding数据源配置排除自动装配业务数据源配置加解密数据源配置加解密数据源的使用结语前言 前一篇博文,透明化Sharding-JDBC数据库字段加解密方案 ...
    99+
    2024-04-02
  • weblogic如何配置JDBC数据源
    小编给大家分享一下weblogic如何配置JDBC数据源,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.概述 GridLink是WebLogic 10.3.4版...
    99+
    2023-06-03
  • springboot怎么配置sharding-jdbc水平分表
    这篇文章主要讲解了“springboot怎么配置sharding-jdbc水平分表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot怎么配置sharding-jdbc水平分表...
    99+
    2023-06-21
  • Sharding-JDBC 使用入门和基本配置
    【技术沙龙002期】数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名一、什么是Sharding-JDBCSharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用...
    99+
    2023-06-04
  • springboot多数据源配置
    简介 开发当中经常会遇到需要进行多库多表数据整合的需求,在无法拆分项目的情况下,就需要在一个项目中配置多数据源,实现多库数据的整合。本文是在springboot框架的基础上进行的多数据源配置,可参考,也欢迎指正 1、第一步:applicat...
    99+
    2023-08-24
    spring boot mybatis java database
  • ruoyi(若依)配置多数据源(mysql+postgresql),rouyi(Springboot)多数据源设置
    一、除了MySQL驱动,我们还需要用到postgresql的驱动,所以我们先把驱动的依赖给导入进来 org.postgresql postgresql ...
    99+
    2023-08-17
    mysql postgresql spring boot
  • spring+mybatis多数据源的配置
    解决方案:多套sqlSessionFactory,针对不同的数据源数据源Xml代码  <something-else-entirely>   &...
    99+
    2024-04-02
  • java多数据源怎么配置
    在Java中配置多数据源可以通过以下步骤进行:1. 导入相关的依赖包,如`spring-boot-starter-jdbc`、`dr...
    99+
    2023-10-09
    java
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
  • springboot如何配置多数据源
    在Spring Boot中配置多数据源可以通过创建多个DataSource bean,并使用@Primary和@Qualifier注...
    99+
    2024-04-08
    springboot
  • Spring多个数据源配置详解
    前言 在上篇文章讲到了如何配置单数据源,但是在实际场景中,会有需要配置多个数据源的场景,比如说,我们在支付系统中,单笔操作(包含查询、插入、新增)中需要操作主库,在批量查询或者对账单...
    99+
    2024-04-02
  • springboot中如何配置多数据源
    这期内容当中小编将会给大家带来有关springboot中如何配置多数据源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1...
    99+
    2023-06-15
  • 怎么设置jdbc数据源属性
    要设置JDBC数据源属性,需要在应用程序的配置文件中进行配置。具体步骤如下:1. 打开应用程序的配置文件,通常是一个XML文件或一个...
    99+
    2023-09-08
    jdbc
  • JDBC数据库配置问文件
    db.driver=com.mysql.jdbc.Driver db.dialect=org.hibernate.dialect.MySQLDialect db.maximumPoolSize=50 db...
    99+
    2024-04-02
  • 教你使用springboot配置多数据源
    目录一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db11.3 在数据库db2中创建表db2二、创建springboot项目2.1 pom.xml导...
    99+
    2024-04-02
  • springboot 如何配置多个jndi数据源
    springboot 配置多个jndi数据源 1.在application.properties中,添加jndi配置 如下图 2.新建dataSourceConfig类 3.d...
    99+
    2024-04-02
  • 怎么在SpringBoot中配置多数据源
    本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一...
    99+
    2023-06-14
  • 怎么使用SpringBoot配置多数据源
    这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom....
    99+
    2023-06-29
  • springboot整合druid及多数据源配置
    前言 本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 一、springboot整合druid的演示demo 可以用idea快速生成一个可运行的dem...
    99+
    2023-10-24
    spring boot java spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作