shardingsphere 集成springboot【水平分表】
创建sharding_sphere数据库
在数据库中创建两张表,t_order_1和t_order_2
分片规则:如果订单编号是偶数添加到t_order_1,如果是奇数添加到t_order_2
创建实体类
public class Order { private Integer id; private Integer orderType; private Integer customerId; private Double amount; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getOrderType() { return orderType; } public void setOrderType(Integer orderType) { this.orderType = orderType; } public Integer getCustomerId() { return customerId; } public void setCustomerId(Integer customerId) { this.customerId = customerId; } public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } @Override public String toString() { return "Order{" + "id=" + id + ", orderType='" + orderType + '\'' + ", customerId=" + customerId + ", amount=" + amount + '}'; }
}
创建Mapper
@Repository
@Mapper
public interface OrderMapper { @Insert("insert into t_order(order_type,customer_id,amount) values(#{orderType},#{customerId},#{amount})") public void insert(Order orders); @Select("select * from t_order where id = #{id}") @Results({ @Result(property = "id",column = "id"), @Result(property = "orderType",column = "order_type"), @Result(property = "customerId",column = "customer_id"), @Result(property = "amount",column = "amount") }) public Order selectOne(Integer id);
}
创建配置文件
spring: shardingsphere: datasource: #数据源配置 names: ds1 ds1: #数据源0 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ds1?serverTimezone=UTC&useSSL=false username: root password: wsrbb sharding: tables: t_order: actual-data-nodes: ds1.t_order_${1..2} #指定orders表的分布情况,配置表在哪个数据库中,表名称是什么 # 雪花算法 key-generator: column: id type: SNOWFLAKE props: worker-id: 123 max-vibration-offset: 3 ##指定分片策略。根据id的奇偶性来判断插入到哪个表 table-strategy: inline: sharding-column: id algorithm-expression: t_order_${id % 2 +1} #打开sql输出日志 props: sql: show: true
运行测试类即可
@Test
public void addOrders(){ for (int i = 1; i <=10 ; i++) { Order orders = new Order(); //orders.setId(i); orders.setCustomerId(new Random().nextInt(10)); orders.setOrderType(i); orders.setAmount(1000.0*i); orderMapper.insert(orders); }
}相关文章:
shardingsphere 集成springboot【水平分表】
创建sharding_sphere数据库 在数据库中创建两张表,t_order_1和t_order_2 分片规则:如果订单编号是偶数添加到t_order_1,如果是奇数添加到t_order_2 创建实体类 public class Order { private Integer id; private Integer orderType; private Int…...
GO 的 Web 开发系列(六)—— 遍历路径下的文件
文件 IO 处理是程序的基础功能,WEB 程序中通过文件 IO 实现附件的上传与下载。在 GO 中,有多种方式可以遍历文件目录,获取文件路径,本文从使用层面上论述这些函数。 预先准备一个包含子目录的目录,用于遍历测试&#…...
Flutter 处理异步操作并根据异步操作状态动态构建界面的方法FutureBuilder
概述 当界面的内容需要依靠网络请求的数据,就需要处理苦恼的,状态是空,非空的逻辑了,不然页面构建可能会报错,而FutureBuilder提供了一个非常好的解决方法,直接看代码 代码 异步操作函数 即网络请求函数…...
Git教程-Git的基本使用
Git是一个强大的分布式版本控制系统,它不仅用于跟踪代码的变化,还能够协调多个开发者之间的工作。在软件开发过程中,Git被广泛应用于协作开发、版本管理和代码追踪等方面。以下是一个详细的Git教程,我们将深入探讨Git的基本概念和…...
Java解决长度为K子的数组中的的最大和
Java解决长度为K子的数组中的的最大和 01 题目 给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和: 子数组的长度是 k,且子数组中的所有元素 各不相同 。 返回满足题面要求的最大子数组和。如果不存在子…...
【手机端测试】adb基础命令
一、什么是adb adb(Android Debug Bridge)是android sdk的一个工具 adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。 Android的初衷是用adb这样的一个工具来协助开发人…...
【数据结构】深入探讨二叉树的遍历和分治思想(一)
🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要讲述二叉树的递归结构及分治算法的思想。 目录: 🌍前言:🌍…...
jQuery AJAX get() 和 post() 方法—— W3school 详解 简单易懂(二十四)
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 HTTP 请求:GET vs. POST 两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。 GET - 从指定的资源请求数据POST - 向指定的资源提交要处理的数据 GET 基本…...
Linux中如何进行LVM逻辑卷扩容?
#注意:如果lv所在的vg有空间直接扩容就ok了! 1.创建pv pvcreate /dev/sdb 执行以上命令得到以下内容: Physical volume "/dev/sdb" successfully created. 2.直接vgextend扩容 vgextend vg1 /dev/sdb #卷组名字,将…...
现代企业架构框架——应用架构
现代企业架构框架——应用架构。 现代企业架构中的应用架构是指企业在构建和维护应用系统时所采用的一种架构框架。应用架构旨在实现应用系统的可扩展性、灵活性、可维护性和可重用性,以满足企业在数字化时代对应用系统的快速交付和持续创新的需求。下面将详细介绍应用架构的…...
期货开户保证金保障市场正常运转
期货保证金是什么?在期货市场上,采取保证金交易制度,投资者只需按期货合约的价值,交一定比率少量资金即可参与期货合约买卖交易,这种资金就是期货保证金。期货保证金(以下简称保证金〕按性质与作用的不同。…...
WebGIS----wenpack
学习资料:https://webpack.js.org/concepts/ 简介: Webpack 是一个现代化的 JavaScript 应用程序的模块打包工具。它能够将多个 JavaScript 文件和它们的依赖打包成一个单独的文件,以供在网页中使用。 Webpack 还具有编译和转换其他类型文…...
【Maven】Maven 基础教程(二):Maven 的使用
《Maven 基础教程》系列,包含以下 2 篇文章: Maven 基础教程(一):基础介绍、开发环境配置Maven 基础教程(二):Maven 的使用 😊 如果您觉得这篇文章有用 ✔️ 的话&#…...
mirthConnect忽略HTTPS SSL验证
mirthConnect SSL忽略验证 1、下载https网站证书 点击不安全---->证书无效 2、查看mirth 秘钥库口令 在mirthConnect 的conf目录下面keystore.storepass 3、导入证书到本地 在jdk的bin目录下面执行 keytool -importcert -file "下载的网站证书路径" -keysto…...
libvirt命名空间xmlns:qemu的使用
示例xml <domain type{domain_type} xmlns:qemuhttp://libvirt.org/schemas/domain/qemu/1.0><qemu:commandline><qemu:commandline><qemu:arg value-newarg/><qemu:env nameQEMU_ENV valueVAL/></qemu:commandline></domain>"…...
ywtool check命令及ywtool clean命令
一.ywtool check命令 1.1 ywtool check -I 1.2 ywtool check all 1.3 ywtool check io 1.4 ywtool check elk 1.5 ywtool check php 1.6 ywtool check mysql 1.7 ywtool check nginx 1.8 ywtool check system 1.9 ywtool check docker_nbip [容器名称] 1.10 ywtool check 1.10…...
java009 - Java面向对象基础
1、类和对象 1.1 什么是对象 万物皆对象,客观存在的事物皆为对象。 1.2 什么是面向对象 1.3 什么是类 类是对现实生活中一类具有共同属性和行为的事物抽象。 特点: 类是对象的数据类型类是具有相同属性和行为的一组对象的集合 1.4 什么是对象的属…...
MWC 2024 | 广和通携手意法半导体发布智慧家居解决方案
世界移动通信大会2024期间,广和通携手横跨多重应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,以下简称ST;纽约证券交易所代码:STM)发布支持Matter协议的智慧家居解决方案。该方案在广和…...
threejs 大场景下,对小模型进行贴图处理
接上篇小模型的删除☞threeJS 大模型中对小模型进行删除-CSDN博客 针对已有模型,根据数据状态进行贴图处理,例如:机房内电脑告警状态、电脑开关机状态下的不同状态贴图等 示例模型还是以丛林小屋为例:针对该模型中的树干进行贴图…...
云畅科技携手飞腾打造智慧园区信创低代码综合解决方案
01 方案概述 随着国家对信创产业的日益重视与大力支持,信创行业的产业化进程正在不断加快。智慧园区,作为信创产业蓬勃发展的核心载体与战略平台,正日益凸显其重要性。与此同时,在政策引导和市场需求的双重驱动下,智慧…...
CATIA高效设计:自定义快捷键全攻略
1. 为什么你需要自定义CATIA快捷键? 刚接触CATIA时,我和大多数人一样傻傻地用鼠标点菜单栏。直到有次看到同事用键盘噼里啪啦操作,建模速度比我快三倍,才意识到快捷键的重要性。CATIA默认的快捷键设置其实非常基础,很…...
Phi-4-mini-reasoning轻量推理新选择:开源可部署+128K上下文实战评测
Phi-4-mini-reasoning轻量推理新选择:开源可部署128K上下文实战评测 1. 模型概述 Phi-4-mini-reasoning是一款基于合成数据构建的轻量级开源模型,专注于高质量推理任务。作为Phi-4模型家族成员,它特别强化了数学推理能力,同时支…...
从理论到实践:经济订货批量模型(EOQ)在现代供应链管理中的应用与优化
1. EOQ模型的前世今生:从仓库管理员的小本本到智能算法 记得我刚入行供应链管理那会儿,第一次听说EOQ(经济订货批量)这个词,还以为是什么高深莫测的黑科技。后来才发现,这其实就是仓库管理员用了上百年的老…...
用STM32和PID算法,手把手教你做一个带双环控制的数控电源(附完整代码)
基于STM32的双环PID数控电源实战指南 在电子设计领域,一个稳定可靠的电源系统往往是项目成功的基础。对于创客和电子爱好者来说,能够自主设计并实现一个具备电压电流精确控制能力的数控电源,不仅能够满足日常开发测试需求,更是提升…...
android 自定义Dialog,baseDialog,居中、底部对其,弹框设置背景透明、显示时隐藏系统导航栏,view的显示和添加,任意布局view;ProgressBar样式
1、自定义 若使用百分比宽高:percentHight、percenWidth,dialog的xml的最高层布局的宽高,必须是match_parent,要不然,会不生效package com.jd.oa.joy.note.util;import android.app.Dialog; import android.content.Context; impo…...
STM32无刷直流电机驱动实战:H_PWM_L_ON模式详解
1. H_PWM_L_ON模式基础原理 无刷直流电机(BLDC)的驱动方式多种多样,其中H_PWM_L_ON模式因其简单高效的特点,在中小功率应用中非常受欢迎。这种模式的核心思想是:上桥臂采用PWM信号控制,下桥臂则保持常开或…...
计算机辅助药物设计中的分子对接与虚拟筛选
计算机辅助药物设计中的分子对接与虚拟筛选 在药物研发领域,计算机辅助药物设计(CADD)已成为加速新药发现的重要工具。其中,分子对接与虚拟筛选技术通过模拟药物分子与靶标蛋白的相互作用,显著提高了候选化合物的筛选…...
Android音频开发避坑指南:搞懂AudioTrack的MODE_STATIC与MODE_STATIC内存模型差异
Android音频开发深度解析:AudioTrack的MODE_STATIC与MODE_STREAM内存模型实战对比 在移动端音频应用开发中,性能优化始终是工程师们需要直面的挑战。当你在开发一款高要求的音乐播放器或游戏音效系统时,是否遇到过音频播放延迟、内存占用异常…...
Zotero-GPT配置终极指南:3步快速上手AI文献管理插件安装
Zotero-GPT配置终极指南:3步快速上手AI文献管理插件安装 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt 还在为文献整理耗时费力而烦恼吗?Zotero-GPT配置将彻底改变你的研究方式…...
如何免费获取专业级中文宋体:Source Han Serif CN完整使用指南
如何免费获取专业级中文宋体:Source Han Serif CN完整使用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业字体授权费用而烦恼吗?Source Han Ser…...
