sharing-jdbc-1-5.x版本应用

news2024/11/18 22:51:36

1总结

2:详解

运行模式 :: ShardingSphere

用户手册,开发手册。这俩比较重要

spring.shardingsphere.mode.type 默认内存模式

3官网案例

不同的依赖坐标,配置方式不一样。按照官网的配置来一步一步配置。

4 整合springboot方式

行表达式 :: ShardingSphere

Spring Boot Starter :: ShardingSphere

<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
    <version>${shardingsphere.version}</version>
</dependency>

只有读写分离功能

1查询只会查询从库,并且是从库轮训查询

2:插入数据只会插入主库

application.properties

server.port=8080
spring.application.name=sharging-jdbc
spring.profiles.active=dev

# 配置的属性后面不要带空格 出问题
#内存模式
spring.shardingsphere.mode.type=Memory

# 真实数据源名称,多个数据源用逗号区分
spring.shardingsphere.datasource.names=master,slave1,slave2

#配置第一个数据源
spring.shardingsphere.datasource.master.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.master.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.master.jdbc-url=jdbc:mysql://192.168.135.128:3306/db1?useUnicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.master.username=root
spring.shardingsphere.datasource.master.password=root

#配置第二个数据源
spring.shardingsphere.datasource.slave1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.slave1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave1.jdbc-url=jdbc:mysql://192.168.135.4:3306/db1?useUnicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.slave1.username=root1
spring.shardingsphere.datasource.slave1.password=root1
#配置第三个数据源
spring.shardingsphere.datasource.slave2.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.slave2.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave2.jdbc-url=jdbc:mysql://192.168.135.128:3306/db2?useUnicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.slave2.username=root
spring.shardingsphere.datasource.slave2.password=root

###################

#读写分离类型 ,如:Static(静态配置 配置文件方式应该) Dynamic(动态配置 代码方式应该)
#  myspring 自己定义的 :类似于 mycat逻辑库名
spring.shardingsphere.rules.readwrite-splitting.data-sources.myspring.type=Static
# 写数据源名称 来源 -> spring.shardingsphere.datasource.names
spring.shardingsphere.rules.readwrite-splitting.data-sources.myspring.props.write-data-source-name=master
# 读数据名称 多个从库用逗号隔开   来源 -> spring.shardingsphere.datasource.names
spring.shardingsphere.rules.readwrite-splitting.data-sources.myspring.props.read-data-source-names=slave1,slave2



#负载均衡算法名称
spring.shardingsphere.rules.readwrite-splitting.data-sources.myspring.load-balancer-name=my_round

#负载均衡算法 类型 ROUND_ROBIN(轮询算法)  RANDOM(随机访问算法) WEIGHT(权重访问算法)
spring.shardingsphere.rules.readwrite-splitting.load-balancers.my_round.type=ROUND_ROBIN



###################
# 分表策略,同分库策略
#spring.shardingsphere.sharding.tables.t_order.actual-data-nodes=master.t_order
#spring.shardingsphere.sharding.tables.t_order.actual-data-nodes=master$->{0..1}.t_order_$->{0..1}

# 分片列名称
#spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=order_id
# 分片算法名称
#spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=HASH_MOD



#打印sql
spring.shardingsphere.props.sql-show=true

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=300
mybatis.mapper-locations=classpath:mapper/*.xml

application.yml 方式配置了好久不好使

1:不做任何配置的表的增删改查 会走第一个数据源

2:增删改查  t_order 均来源于  db2 这个数据源:

server.port=8080
spring.application.name=sharging-jdbc
spring.profiles.active=dev

# 配置的属性后面不要带空格 出问题
#内存模式
spring.shardingsphere.mode.type=Memory

# 真实数据源名称,多个数据源用逗号区分
spring.shardingsphere.datasource.names=db1,db2

#配置第一个数据源
spring.shardingsphere.datasource.db1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.jdbc-url=jdbc:mysql://localhost:3306/db1
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root

#配置第二个数据源
spring.shardingsphere.datasource.db2.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db2.jdbc-url=jdbc:mysql://localhost:3306/db2
spring.shardingsphere.datasource.db2.username=root
spring.shardingsphere.datasource.db2.password=root


#################### 标准分片表配置
# 垂直分库 指定哪个表的数据只来自哪个库
#spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=
# 只要对t_order的任何操作都只会到 db2节点里面去(注意:读写分离去除)
spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=db2.t_order



#打印sql
spring.shardingsphere.props.sql-show=true

#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=300
mybatis.mapper-locations=classpath:mapper/*.xml

配置 多数据源但是每个数据源不在分表 (db0,db1 都有t_order,每个库不会在将 t_order 分表操作 )

分片算法 :: ShardingSphere
server.port=8080
spring.application.name=sharging-jdbc
spring.profiles.active=dev

# 配置的属性后面不要带空格 出问题
#内存模式
spring.shardingsphere.mode.type=Memory

# 真实数据源名称,多个数据源用逗号区分
spring.shardingsphere.datasource.names=db0,db1

#配置第一个数据源
spring.shardingsphere.datasource.db0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db0.jdbc-url=jdbc:mysql://localhost:3306/db1
spring.shardingsphere.datasource.db0.username=root
spring.shardingsphere.datasource.db0.password=root

#配置第二个数据源
spring.shardingsphere.datasource.db1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.jdbc-url=jdbc:mysql://localhost:3306/db2
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root


#################### 标准分片表配置
# 垂直分库 指定哪个表的数据只来自哪个库
#spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=
# 告诉shardingjdbc 表t_order 这个表的分布情况?
spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=db$->{0..1}.t_order0

# 分库策略,
# 分片列名称(按照order_id去分库 )
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=order_id
#   分库分片算法名称 (按照什么方式分到不同的库?)
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=fenku

# 分片算法配置
#https://shardingsphere.apache.org/document/5.1.1/cn/user-manual/shardingsphere-jdbc/builtin-algorithm/sharding/#%E5%8F%96%E6%A8%A1%E5%88%86%E7%89%87%E7%AE%97%E6%B3%95

# 分片算法类型  (分库按哪个算法去分)
#spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.type=INLINE
# 分片算法属性配置  algorithm-expression(分片算法的行表达式) 按取模分库
#spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.props.algorithm-expression=db$->{order_id % 2}

# 分片算法类型  (分库按哪个算法去分)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.type=MOD
# 分片算法属性配置  algorithm-expression(分片算法的行表达式) 按取模分库
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.props.sharding-count=2

# 分片算法类型  (分库按哪个算法去分) hash方式
#spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.type=HASH_MOD
# 分片算法属性配置  algorithm-expression(分片算法的行表达式) 按取模分库
#spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.props.sharding-count=2




#打印sql
spring.shardingsphere.props.sql-show=true

#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=300
mybatis.mapper-locations=classpath:mapper/*.xml

分库+分表 (db0,db1 俩个库中,每个库还要分为 t_order0,t_order1)

server.port=8080
spring.application.name=sharging-jdbc
spring.profiles.active=dev

# 配置的属性后面不要带空格 出问题
#内存模式
spring.shardingsphere.mode.type=Memory

# 真实数据源名称,多个数据源用逗号区分
spring.shardingsphere.datasource.names=db0,db1

#配置第一个数据源
spring.shardingsphere.datasource.db0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db0.jdbc-url=jdbc:mysql://localhost:3306/db1
spring.shardingsphere.datasource.db0.username=root
spring.shardingsphere.datasource.db0.password=root

#配置第二个数据源
spring.shardingsphere.datasource.db1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.jdbc-url=jdbc:mysql://localhost:3306/db2
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root


#################### 标准分片表配置
# 垂直分库 指定哪个表的数据只来自哪个库
#spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=
# 告诉shardingjdbc 表t_order 这个表的分布情况?
spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=db$->{0..1}.t_order$->{0..1}

# 分库策略,
# 分片列名称(按照order_id去分库 )
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=order_id
#   分库分片算法名称 (按照什么方式分到不同的库?)
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=fenku

# 分片算法配置 https://shardingsphere.apache.org/document/5.1.1/cn/user-manual/shardingsphere-jdbc/builtin-algorithm/sharding/#%E5%8F%96%E6%A8%A1%E5%88%86%E7%89%87%E7%AE%97%E6%B3%95
# 分片算法类型  (分库按哪个算法去分)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.type=INLINE
# 分片算法属性配置  algorithm-expression(分片算法的行表达式) 按取模分库
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.props.algorithm-expression=db$->{order_id % 2}


################## 分表策略,#####
# 分片列名称(按照order_id去分表)
spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-column=order_id
#   分表分片算法名称 (按照什么方式分到不同的表?)
spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-algorithm-name=fenbiao
# 分片算法类型  (分库按哪个算法去分)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenbiao.type=INLINE
# 分片算法属性配置  algorithm-expression(分片算法的行表达式)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenbiao.props.algorithm-expression=t_order$->{order_id % 2}


#打印sql
spring.shardingsphere.props.sql-show=true

#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=300
mybatis.mapper-locations=classpath:mapper/*.xml

配置使用雪花算法

自己实现雪花算法时要使用静态方式调用获取id,new对象方式获取id 老是主键冲突?不知道为啥?

  t_order 表插入使用雪花算法

# 分布式序列策略配置
# 分布式序列列名称
spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.column=order_id
# 分布式序列算法名称
spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.key-generator-name=xuehua
# 分布式序列算法配置
# 分布式序列算法类型
#spring.shardingsphere.rules.sharding.key-generators.<key-generate-algorithm-name>.type=
spring.shardingsphere.rules.sharding.key-generators.xuehua.type=SNOWFLAKE

  字典表 (广播表)

   每个库都是一模一样的数据 ,插入的时候,所有的库都要插一份

 

server.port=8080
spring.application.name=sharging-jdbc
spring.profiles.active=dev

# 配置的属性后面不要带空格 出问题
#内存模式
spring.shardingsphere.mode.type=Memory

# 真实数据源名称,多个数据源用逗号区分
spring.shardingsphere.datasource.names=db0,db1

#配置第一个数据源
spring.shardingsphere.datasource.db0.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db0.jdbc-url=jdbc:mysql://localhost:3306/db1
spring.shardingsphere.datasource.db0.username=root
spring.shardingsphere.datasource.db0.password=root

#配置第二个数据源
spring.shardingsphere.datasource.db1.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.jdbc-url=jdbc:mysql://localhost:3306/db2
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root


#################### 标准分片表配置
# 垂直分库 指定哪个表的数据只来自哪个库
#spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=
# 告诉shardingjdbc 表t_order 这个表的分布情况?
spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=db$->{0..1}.t_order$->{0..1}

###############分库策略########
# 分库策略,
# 分片列名称(按照order_id去分库 )
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=order_id
#   分库分片算法名称 (按照什么方式分到不同的库?)
spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=fenku

# 分片算法配置 https://shardingsphere.apache.org/document/5.1.1/cn/user-manual/shardingsphere-jdbc/builtin-algorithm/sharding/#%E5%8F%96%E6%A8%A1%E5%88%86%E7%89%87%E7%AE%97%E6%B3%95
# 分片算法类型  (分库按哪个算法去分)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.type=INLINE
# 分片算法属性配置  algorithm-expression(分片算法的行表达式) 按取模分库
spring.shardingsphere.rules.sharding.sharding-algorithms.fenku.props.algorithm-expression=db$->{order_id % 2}
###############分库策略########

################## 分表策略,开始#####
# 分片列名称(按照order_id去分表)
spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-column=order_id
#   分表分片算法名称 (按照什么方式分到不同的表?)
spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-algorithm-name=fenbiao
# 分片算法类型  (分库按哪个算法去分)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenbiao.type=INLINE
# 分片算法属性配置  algorithm-expression(分片算法的行表达式)
spring.shardingsphere.rules.sharding.sharding-algorithms.fenbiao.props.algorithm-expression=t_order$->{order_id % 2}
##################分表策略,结束#####

###################分布式主键配置开始##
# 分布式序列策略配置
# 分布式序列列名称
spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.column=order_id
# 分布式序列算法名称
spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.key-generator-name=xuehua
# 分布式序列算法配置
# 分布式序列算法类型
#spring.shardingsphere.rules.sharding.key-generators.<key-generate-algorithm-name>.type=
spring.shardingsphere.rules.sharding.key-generators.xuehua.type=SNOWFLAKE
###################分布式主键配置结束##

######################### 字典表配置开始############
#告诉分布情况 分库没分表所以只配置分库规则即可
spring.shardingsphere.rules.sharding.tables.t_dict.actual-data-nodes=db$->{0..1}.t_dict
# 广播表规则列表
spring.shardingsphere.rules.sharding.broadcast-tables[0]=t_dict

#########################字典表配置结束#######################################


#打印sql
spring.shardingsphere.props.sql-show=true

#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=300
mybatis.mapper-locations=classpath:mapper/*.xml

配置总结:

1:如下图:db1,db2 中都只有t_order0这个表,只需要配置分库规则即可

2:如下图:db1,db2中 都包含 t_order0,t_order1 这个俩表。必须配置完分库,还必须配置分表规则。这样才能让数据具体落地到哪个表里。

 

数据库分库分表(二)shardingjdbc配置文件_w_t_y_y的博客-CSDN博客

 分库分表ShardingSphere,一文带你搞透(建议收藏)_china_coding的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JS】postMessage 用法(可以给iframe传值)

文章目录基本概念代码案例基本概念 跨文档消息&#xff0c;有时候也简称为XDM(cross-document messaging) 是一种在不同执行上下文&#xff08;如不同源的页面&#xff09;间传递信息的能力。例如&#xff1a;www.wrox.com上的页面想要与包含在内嵌窗格中的p2p.wrox.com上面的页…

第一个Spring Boot程序

⭐️前言⭐️ 本文主要介绍Spring Boot项目的创建流程&#xff0c;及Spring Boot项目目录的一些注意事项。 &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaEE进阶】、【JavaEE初阶】、【MySQL】、【数据结构】 &…

JAVA SCRIPT设计模式--行为型--设计模式之Command命令模式(14)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

服务器硬件规格常用查看命令——CPU相关命令

使用lscpu 命令可以从sysfs和/proc/cpuinfo中收集CPU体系结构信息&#xff0c;并解析优化为易阅读的格式。该信息包括&#xff1a;CPU的线程、核心、套接字数量和非一致内存访问&#xff08;NUMA&#xff09;节点的数量&#xff0c;以及CPU缓存、共享缓存、系列、型号等信息。 …

英文写作—Grammarly安装及下载

Grammarly是一款在线语法纠正和校对工具&#xff0c;支持Windows、Mac、iOS和Android等多个平台。 主要功能包括检查单词拼写、纠正标点符号、修正语法错误、调整语气以及给出风格建议等&#xff1b;对学术写作来说&#xff0c;Grammarly还可以帮助查重。 登陆界面&#xff1a…

每日一题:折半查找法,二分查找法

每日一题&#xff1a;折半查找法&#xff0c;二分查找法每日一题&#xff1a;折半查找法&#xff0c;二分查找法二分查找法定义&#xff1a;代码1&#xff1a;代码2&#xff1a;每日一题&#xff1a;折半查找法&#xff0c;二分查找法 ​ &#x1f496;&#x1f496;个人博客:比…

SpringBoot之自定义注解

目录 1.java注解简介 1.1.java注解分类 1.1.1.JDK基本注解 1.1.2.JDK元注解 1.1.3.自定义注解 1.1.4 在这里如何自定义注解&#xff1f; 2、自定义注解 3.Aop应用自定义注解 1.java注解简介 Java注解是附加在代码中的一些元信息&#xff0c;用于一些工具在编译、运行时进行解…

可靠性udp传输大文件

高级计算机网络大作业-可靠性udp传输大文件实验数据zstd压缩1G文件&#xff08;延迟100ms、丢包1%&#xff09;0.1G文件&#xff08;延迟100ms、丢包1%&#xff09;0.01G文件&#xff08;延迟100ms、丢包1%&#xff09;多线程lzma压缩1G文件&#xff08;延迟100ms、丢包1%&…

N子棋(外加双人对战)详解!推荐!!!

文章目录准备工作创建菜单进入游戏初始化棋盘、打印棋盘玩家下棋、电脑下棋、生成随机数判断输赢大家好&#xff01;时隔多天&#xff0c;我终于写博客了&#xff0c;真的是开心&#xff01;这一次带来的是N子棋有双人对战和单人下棋&#xff0c;请认真看下去&#xff0c;我会竭…

虚拟人纷纷「出道」,社交泛娱乐场景如何迎接新顶流?

⬆️“政企数智办公行业研究报告及融云新品发布会”明天直播&#xff01; 本月 12 日&#xff0c;花房集团即将于香港上市。关注【融云全球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~ 中国政企数智办公平台 在带货直播平台的赫赫之名下&#xff0c;娱乐直播…

Git —— 那些在工作中日常使用的操作

Git —— 那些在工作中日常使用的操作 《工欲善其事&#xff0c;必先利其器》—— 既然点进来了&#xff0c;麻烦你看下去&#xff0c;希望你有不一样的收获~ 一、同一项目关联不同平台的远程仓库 格式&#xff1a;git remote add 命名 仓库链接 git remote add github ssh:/…

六、排序算法介绍2

1、冒泡排序 1.1 基本介绍 冒泡排序&#xff08;Bubble Sorting&#xff09; 的基本思想是&#xff1a; 通过对待排序序列从前向后&#xff08;从下标较小的元素开始&#xff09;&#xff0c;依次比较相邻元素的值&#xff0c; 若发现逆序则交换&#xff0c; 使值较大的元素逐…

netcore接入钉钉扫码登录

netcore接入钉钉扫码登录一、首先官方文档预览二、登录钉钉开发者后台三、创建第三方登录授权应用1.新版打开方式2.旧版打开方式&#xff08;1&#xff09;先返回旧版页面&#xff08;2&#xff09;选择应用开发&#xff08;3&#xff09;编辑登录应用信息&#xff08;4&#x…

npm包是什么?如何发布npm包?

Node的组成 内置模块 自定义模块 第三方模块&#xff08;什么是包&#xff1f;&#xff09; npm包包括那些东西&#xff1f; package.json README.md 。。。.js 注册npm账号 细节 发布包 package.json README.md index.js date htmlEscape 层级结构 发布指令 N…

STC15 - C51 - Memory Models

文章目录STC15 - C51 - Memory Models概述笔记内存用量的优化思路ENDSTC15 - C51 - Memory Models 概述 在STC上测试呢, 想看看变量(不同类型的定义)被编译器分配在哪个内存范围(idata, pdata, xdata)? 同时, 总结一下降低内存用量的思路(如果像上位机那样内存管够, 就不用考…

Linux系统编程第五节——进程创建、终止、等待(通俗易懂快速上手版本)

目录 进程的创建 写时拷贝 进程的终止 进程的等待 状态参数status wait函数和waitpid函数 我们本节内容&#xff0c;主要来讲述进程控制有关的内容。 同样&#xff0c;我们会用通俗易懂、不同于教科书的讲授思路&#xff0c;来为大家讲解。 同时&#xff0c;本节内容板块…

你了解你的身体吗?- 基因社会

关于作者 本书的两位作者分别是以太•亚奈和马丁 • 菜凯尔&#xff0c;前者是哈佛大学髙级研究学者&#xff0c; 任职于纽约大学&#xff0c;是生物化学和分子药理 学的教授&#xff1b;后者是杜塞尔多夫海因西里•海 涅大学的生物信息学教授。两位作者从基 因之间合作和竞争…

[附源码]计算机毕业设计的4s店车辆管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

5款十分好用,但是没有什么知名度的软件

随着网络信息技术的发展&#xff0c;越来越多的人在办公时需要用到电脑了。如果你想提高办公效率&#xff0c;那么就少不了工具的帮忙&#xff0c;今天给大家分享5款办公必备的好软件。 1.数据可视化软件——Power BI Power BI是一款出色的业务分析软件。Power BI主要是用于在…

[Go] go基础4

1. 并发编程 1.1 并发和并行 并发: 多个线程在同个核心的CPU上运行.并发的本质是串行. 并行: 多个线程在多个核心的CPU上运行. 1.2 协程和线程 协程: 独立的栈空间,共享堆空间,调度由用户控制,本质上有点类似用户及线程,这些用户及线程的调度也是自己实现的. 线程: 一个线…