辽宁高速公路建设局网站,wordpress做管理系统,Seo与网站推广的技术对比,深圳做分销网站文章目录 #x1f50a;博主介绍#x1f964;本文内容#x1f34a;1.引入maven依赖#x1f34a;2.启动类上添加注解MapperScan#x1f34a;3.添加application.properties配置#x1f34a;4.普通的自定义实体类#x1f34a;5.写个测试类验证一下#x1f34a;6.控制台打印… 文章目录 博主介绍本文内容1.引入maven依赖2.启动类上添加注解MapperScan3.添加application.properties配置4.普通的自定义实体类5.写个测试类验证一下6.控制台打印的日志7.观察一下数据库的数据8.maven的setting文件 文章总结博主目标 博主介绍 我是廖志伟一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。跑过十五公里、徒步爬过衡山、有过三个月减肥20斤的经历、是个喜欢躺平的狠人。 拥有多年一线研发和团队管理经验研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper)消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。 有过从0到1的项目高并发项目开发与管理经验对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。 有过云端搭建服务器环境自动化部署CI/CD弹性伸缩扩容服务器最高200台了解过秒级部署阿里云的ACK和华为云的云容器引擎CCE流程能独立开发和部署整个后端服务有过分库分表的实战经验。 经过多年在CSDN创作上千篇文章的经验积累我已经拥有了不错的写作技巧与清华大学出版社签下了四本书籍的合约并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的《Java项目实战—深入理解大型互联网企业通用技术》以及《解密程序员的思维密码–沟通、演讲、思考的实践》。具体出版计划会根据实际情况进行调整希望各位读者朋能够多多支持 文章目录 博主介绍本文内容1.引入maven依赖2.启动类上添加注解MapperScan3.添加application.properties配置4.普通的自定义实体类5.写个测试类验证一下6.控制台打印的日志7.观察一下数据库的数据8.maven的setting文件 文章总结博主目标 前面提到过【快速使用ShardingJDBC的哈希分片策略进行分表】接下来就需要对其进行分库了。 阅读前快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问以加深理解和吸收知识。 在这个美好的时刻本人不再啰嗦废话现在毫不拖延地进入文章所要讨论的主题。接下来我将为大家呈现正文内容。 本文内容 1.引入maven依赖
在pom.xml中添加依赖
!-- Maven 构建配置 --
build!-- 插件列表 --plugins!-- Maven 编译插件 --plugin!-- 插件所在 groupId --groupIdorg.apache.maven.plugins/groupId!-- 插件所在 artifactId --artifactIdmaven-compiler-plugin/artifactId!-- 插件配置 --configuration!-- 源码编译版本 --source8/source!-- 目标编译版本 --target8/target/configuration/plugin/plugins
/build!-- Maven 依赖管理配置 --
dependencyManagement!-- 依赖列表 --dependencies!-- Spring Boot 依赖管理 --dependency!-- 依赖所在 groupId --groupIdorg.springframework.boot/groupId!-- 依赖所在 artifactId --artifactIdspring-boot-dependencies/artifactId!-- 依赖版本 --version2.3.1.RELEASE/version!-- 依赖类型 --typepom/type!-- 依赖范围 --scopeimport/scope/dependency/dependencies
/dependencyManagement!-- 项目依赖列表 --
dependencies!-- 分库分表组件 Sharding JDBC --dependency!-- 依赖所在 groupId --groupIdorg.apache.shardingsphere/groupId!-- 依赖所在 artifactId --artifactIdsharding-jdbc-spring-boot-starter/artifactId!-- 依赖版本 --version4.1.1/version/dependency!-- Spring Boot 核心依赖 --dependency!-- 依赖所在 groupId --groupIdorg.springframework.boot/groupId!-- 依赖所在 artifactId --artifactIdspring-boot-starter/artifactId/dependency!-- Spring Boot 测试依赖 --dependency!-- 依赖所在 groupId --groupIdorg.springframework.boot/groupId!-- 依赖所在 artifactId --artifactIdspring-boot-starter-test/artifactId/dependency!-- 数据源连接池组件 Druid --dependency!-- 依赖所在 groupId --groupIdcom.alibaba/groupId!-- 依赖所在 artifactId --artifactIddruid/artifactId!-- 依赖版本 --version1.1.22/version/dependency!-- MySQL 驱动依赖 --dependency!-- 依赖所在 groupId --groupIdmysql/groupId!-- 依赖所在 artifactId --artifactIdmysql-connector-java/artifactId/dependency!-- MyBatis-Plus 集成依赖 --dependency!-- 依赖所在 groupId --groupIdcom.baomidou/groupId!-- 依赖所在 artifactId --artifactIdmybatis-plus-boot-starter/artifactId!-- 依赖版本 --version3.0.5/version/dependency
/dependencies2.启动类上添加注解MapperScan
扫描对应的mapper路径
MapperScan(com.example.shardingDemo.mapper)
SpringBootApplication
public class ShardingJDBCApplication {public static void main(String[] args) {SpringApplication.run(ShardingJDBCApplication.class,args);}
}3.添加application.properties配置
# 哈希分片策略分库分表
# 设置数据源名称为 m1
spring.shardingsphere.datasource.namesm1,m2
# 设置数据源类型为 Druid 数据源
spring.shardingsphere.datasource.m1.typecom.alibaba.druid.pool.DruidDataSource
# 设置数据源驱动为 MySQL 的 JDBC 驱动
spring.shardingsphere.datasource.m1.driver-class-namecom.mysql.cj.jdbc.Driver
# 设置数据源连接 URL连接本地 MySQL 数据库的 userdb 库
spring.shardingsphere.datasource.m1.urljdbc:mysql://192.168.122.128:3306/masterdemo?serverTimezoneGMT%2B8
# 设置连接数据库所需的用户名和密码
spring.shardingsphere.datasource.m1.usernameroot
spring.shardingsphere.datasource.m1.passwordbfb8f36cc2616995
# 设置数据源名称为 m2
spring.shardingsphere.datasource.m2.typecom.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m2.driver-class-namecom.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.m2.urljdbc:mysql://192.168.122.128:3306/masterdemo2?serverTimezoneGMT%2B8
spring.shardingsphere.datasource.m2.usernameroot
spring.shardingsphere.datasource.m2.passwordbfb8f36cc2616995
# 设置分片表的实际数据节点对应两个数据表m1.t_user_1 和 m1.t_user_2
spring.shardingsphere.sharding.tables.user.actual-data-nodesm$-{1..2}.t_user_$-{1..2}
# 设置分片键为 user_id
spring.shardingsphere.sharding.tables.user.key-generator.columnuser_id
# 设置分布式 ID 生成算法为 SNOWFLAKE 算法worker ID 为 1
spring.shardingsphere.sharding.tables.user.key-generator.typeSNOWFLAKE
# Spring Boot 应用配置项ShardingSphere 分库分表配置之课程表的主键生成策略配置项属性名: worker.id属性值: 1 (表示该应用程序所使用的 Snowflake 算法的工作节点 ID 为 1)
spring.shardingsphere.sharding.tables.user.key-generator.props.worker.id1
# 设置分表算法为 inline 分片算法分片列为 user_id分片规则为课程编号为奇数的记录在 m1.t_user_1 表中课程编号为偶数的记录在 m1.t_user_2 表中
spring.shardingsphere.sharding.tables.user.table-strategy.inline.sharding-columnuser_id
# table-strategy.inline表示使用内联表达式的分片策略。lgorithm-expression表示表名生成算法表达式。t_user_$-{user_id%21}表示生成的表名即t_user_后面接下标为(user_id%21)的表。
# user_id是表中的一个自增主键%2表示对2取余数1表示取余结果加1即user_id值为偶数进入到t_user_1表user_id值为奇数进入到t_user_2表。
spring.shardingsphere.sharding.tables.user.table-strategy.inline.algorithm-expressiont_user_$-{user_id%21}
# 使用 Spring 和 ShardingSphere 进行数据库分片将 user 表根据 user_id 字段进行分片,数据库策略为 inline即使用算法表达式进行分片
spring.shardingsphere.sharding.tables.user.database-strategy.inline.sharding-columnuser_id
# 用户 ID 对2取余再加1结果为1或2根据结果选择数据库 m1 或 m2 进行存储
spring.shardingsphere.sharding.tables.user.database-strategy.inline.algorithm-expressionm$-{user_id%21}
# 设置 SQL 显示开启方便调试
spring.shardingsphere.props.sql.showtrue
# 允许覆盖 Bean 定义用于调试时快速更新配置
spring.main.allow-bean-definition-overridingtrue4.普通的自定义实体类
import lombok.Data;
Data
public class User {private int userId;private String userName;private String status;private int age;
}5.写个测试类验证一下
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.shardingDemo.entity.Course;
import com.example.shardingDemo.entity.Dict;
import com.example.shardingDemo.entity.User;
import com.example.shardingDemo.mapper.CourseMapper;
import com.example.shardingDemo.mapper.DictMapper;
import com.example.shardingDemo.mapper.UserMapper;
import org.apache.shardingsphere.api.hint.HintManager;
import org.junit.Test;
import org.junit.jupiter.api.Tags;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;RunWith(SpringRunner.class)
SpringBootTest
public class ShardingJDBCTest {ResourceCourseMapper courseMapper;ResourceDictMapper dictMapper;ResourceUserMapper userMapper;Testpublic void addUser(){for(int i 0 ; i 10 ; i ){User user new User();user.setUserId(i);user.setUserName(张三i);user.setAge(i);user.setStatus(1);userMapper.insert(user);}}
}6.控制台打印的日志 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/:: Spring Boot :: (v2.3.1.RELEASE)2023-11-08 19:05:14.284 INFO 20848 --- [ main] c.e.a.ShardingJDBCTest : Starting ShardingJDBCTest on WIN-20230222ULN with PID 20848 (started by Administrator in E:\WarkSpace\基础篇书籍\第8章\apache-shardingsphere-demo)
2023-11-08 19:05:14.285 INFO 20848 --- [ main] c.e.a.ShardingJDBCTest : No active profile set, falling back to default profiles: default
2023-11-08 19:05:14.668 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean stringToNoneShardingStrategyConfigurationConverter of type [org.apache.shardingsphere.spring.boot.converter.StringToNoneShardingStrategyConfigurationConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.675 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean spring.shardingsphere.sharding-org.apache.shardingsphere.shardingjdbc.spring.boot.sharding.SpringBootShardingRuleConfigurationProperties of type [org.apache.shardingsphere.shardingjdbc.spring.boot.sharding.SpringBootShardingRuleConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.678 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean spring.shardingsphere.masterslave-org.apache.shardingsphere.shardingjdbc.spring.boot.masterslave.SpringBootMasterSlaveRuleConfigurationProperties of type [org.apache.shardingsphere.shardingjdbc.spring.boot.masterslave.SpringBootMasterSlaveRuleConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.680 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean spring.shardingsphere.encrypt-org.apache.shardingsphere.shardingjdbc.spring.boot.encrypt.SpringBootEncryptRuleConfigurationProperties of type [org.apache.shardingsphere.shardingjdbc.spring.boot.encrypt.SpringBootEncryptRuleConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.682 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean spring.shardingsphere.shadow-org.apache.shardingsphere.shardingjdbc.spring.boot.shadow.SpringBootShadowRuleConfigurationProperties of type [org.apache.shardingsphere.shardingjdbc.spring.boot.shadow.SpringBootShadowRuleConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.685 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean spring.shardingsphere-org.apache.shardingsphere.shardingjdbc.spring.boot.common.SpringBootPropertiesConfigurationProperties of type [org.apache.shardingsphere.shardingjdbc.spring.boot.common.SpringBootPropertiesConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.811 INFO 20848 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration of type [org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration$$EnhancerBySpringCGLIB$$bfc54c27] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-11-08 19:05:14.990 INFO 20848 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
2023-11-08 19:05:15.410 INFO 20848 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} inited
2023-11-08 19:05:15.462 INFO 20848 --- [ main] o.a.s.core.log.ConfigurationLogger : ShardingRuleConfiguration:
tables:user:actualDataNodes: m$-{1..2}.t_user_$-{1..2}databaseStrategy:inline:algorithmExpression: m$-{user_id%21}shardingColumn: user_idkeyGenerator:column: user_idprops:worker.id: 1type: SNOWFLAKElogicTable: usertableStrategy:inline:algorithmExpression: t_user_$-{user_id%21}shardingColumn: user_id2023-11-08 19:05:15.462 INFO 20848 --- [ main] o.a.s.core.log.ConfigurationLogger : Properties:
sql.show: true2023-11-08 19:05:15.471 INFO 20848 --- [ main] ShardingSphere-metadata : Loading 1 logic tables meta data.
2023-11-08 19:05:15.520 INFO 20848 --- [ main] ShardingSphere-metadata : Meta data load finished, cost 58 milliseconds._ _ |_ _ _|_. ___ _ | _
| | |\/|_)(_| | |_\ |_)||_|_\ / | 3.0.5
2023-11-08 19:05:15.618 WARN 20848 --- [ main] c.b.m.core.toolkit.TableInfoHelper : Warn: Could not find TableId in Class: com.example.apacheshardingspheredemo.entity.Course.
2023-11-08 19:05:15.687 WARN 20848 --- [ main] c.b.m.core.toolkit.TableInfoHelper : Warn: Could not find TableId in Class: com.example.apacheshardingspheredemo.entity.Dict.
2023-11-08 19:05:15.699 WARN 20848 --- [ main] c.b.m.core.toolkit.TableInfoHelper : Warn: Could not find TableId in Class: com.example.apacheshardingspheredemo.entity.User.
2023-11-08 19:05:15.786 INFO 20848 --- [ main] c.e.a.ShardingJDBCTest : Started ShardingJDBCTest in 1.657 seconds (JVM running for 2.159)
2023-11-08 19:05:16.150 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.150 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext63e70bf9), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext63e70bf9, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[0, 张三0, 1, 0])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[0])])
2023-11-08 19:05:16.150 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m1 ::: INSERT INTO t_user_1 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [0, 张三0, 1, 0]
2023-11-08 19:05:16.171 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.171 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext67dc6b48), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext67dc6b48, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[1, 张三1, 1, 1])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[1])])
2023-11-08 19:05:16.171 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m2 ::: INSERT INTO t_user_2 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [1, 张三1, 1, 1]
2023-11-08 19:05:16.174 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.174 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext11cadb32), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext11cadb32, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[2, 张三2, 1, 2])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[2])])
2023-11-08 19:05:16.174 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m1 ::: INSERT INTO t_user_1 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [2, 张三2, 1, 2]
2023-11-08 19:05:16.177 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.178 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext704c3bdf), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext704c3bdf, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[3, 张三3, 1, 3])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[3])])
2023-11-08 19:05:16.178 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m2 ::: INSERT INTO t_user_2 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [3, 张三3, 1, 3]
2023-11-08 19:05:16.181 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.181 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext605eb072), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext605eb072, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[4, 张三4, 1, 4])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[4])])
2023-11-08 19:05:16.181 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m1 ::: INSERT INTO t_user_1 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [4, 张三4, 1, 4]
2023-11-08 19:05:16.184 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.184 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext43fd77d8), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext43fd77d8, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[5, 张三5, 1, 5])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[5])])
2023-11-08 19:05:16.184 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m2 ::: INSERT INTO t_user_2 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [5, 张三5, 1, 5]
2023-11-08 19:05:16.187 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.187 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext32ba5c65), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext32ba5c65, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[6, 张三6, 1, 6])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[6])])
2023-11-08 19:05:16.187 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m1 ::: INSERT INTO t_user_1 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [6, 张三6, 1, 6]
2023-11-08 19:05:16.191 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.191 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext5d96d434), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext5d96d434, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[7, 张三7, 1, 7])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[7])])
2023-11-08 19:05:16.191 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m2 ::: INSERT INTO t_user_2 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [7, 张三7, 1, 7]
2023-11-08 19:05:16.195 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.195 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext13dd7887), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext13dd7887, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[8, 张三8, 1, 8])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[8])])
2023-11-08 19:05:16.195 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m1 ::: INSERT INTO t_user_1 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [8, 张三8, 1, 8]
2023-11-08 19:05:16.199 INFO 20848 --- [ main] ShardingSphere-SQL : Logic SQL: INSERT INTO user ( user_id,
user_name,
status,
age ) VALUES ( ?,
?,
?,
? )
2023-11-08 19:05:16.199 INFO 20848 --- [ main] ShardingSphere-SQL : SQLStatement: InsertStatementContext(superCommonSQLStatementContext(sqlStatementorg.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement538aa83f, tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext44de8e00), tablesContextorg.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext44de8e00, columnNames[user_id, user_name, status, age], insertValueContexts[InsertValueContext(parametersCount4, valueExpressions[ParameterMarkerExpressionSegment(startIndex65, stopIndex65, parameterMarkerIndex0), ParameterMarkerExpressionSegment(startIndex68, stopIndex68, parameterMarkerIndex1), ParameterMarkerExpressionSegment(startIndex71, stopIndex71, parameterMarkerIndex2), ParameterMarkerExpressionSegment(startIndex74, stopIndex74, parameterMarkerIndex3)], parameters[9, 张三9, 1, 9])], generatedKeyContextOptional[GeneratedKeyContext(columnNameuser_id, generatedfalse, generatedValues[9])])
2023-11-08 19:05:16.199 INFO 20848 --- [ main] ShardingSphere-SQL : Actual SQL: m2 ::: INSERT INTO t_user_2 ( user_id,
user_name,
status,
age ) VALUES (?, ?, ?, ?) ::: [9, 张三9, 1, 9]
2023-11-08 19:05:16.207 INFO 20848 --- [extShutdownHook] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closing ...
2023-11-08 19:05:16.208 INFO 20848 --- [extShutdownHook] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed
2023-11-08 19:05:16.209 INFO 20848 --- [extShutdownHook] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} closing ...
2023-11-08 19:05:16.209 INFO 20848 --- [extShutdownHook] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} closed
Disconnected from the target VM, address: 127.0.0.1:53866, transport: socketProcess finished with exit code 0
7.观察一下数据库的数据
masterdemo.t_user_1表的数据如图下所示 可以发现masterdemo库的t_user_1表的user_id都是偶数masterdemo库的t_user_2表没有数据。 masterdemo2.course_2表的数据如图下所示 可以发现masterdemo2库的t_user_2表的user_id都是奇数masterdemo2库的t_user_1表没有数据。 8.maven的setting文件
为了避免部分同学下载依赖包不一致导致maven依赖下载不下来我这里给上自己的配置文件代码如下所示
?xml version1.0 encodingUTF-8?
!-- Maven 的配置文件 --
settings xmlnshttp://maven.apache.org/SETTINGS/1.1.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/SETTINGS/1.1.0http://maven.apache.org/xsd/settings-1.1.0.xsd!-- 设置本地仓库的路径 --localRepositoryD:\Java\ReMaven/localRepository!-- 设置镜像 --mirrorsmirroridcentral/idurlhttps://repo1.maven.org/maven2//urlmirrorOf*/mirrorOf/mirror!-- 定义一个镜像 --!-- mirroridaliyunmaven/id nameAlibaba Maven Mirror/name urlhttp://maven.aliyun.com/nexus/content/groups/public//url mirrorOfcentral/mirrorOf /mirror--mirroridaliyunmaven/id!-- 镜像的id --mirrorOf*/mirrorOf!-- 镜像代理的仓库id这里将中央仓库的地址替换为阿里云的地址 --name阿里云公共仓库/name!-- 镜像的名称 --urlhttps://maven.aliyun.com/repository/public/url!-- 镜像的地址 --/mirror/mirrors!-- 设置代理 --proxies/proxies!-- 设置私有仓库的认证信息 --servers/servers!-- 定义构建时添加的环境参数 --profiles!-- 定义一个profile --profileidjdk-1.8/id !-- profile的id --activation !-- 激活条件 --activeByDefaulttrue/activeByDefault !-- 默认激活 --jdk1.8/jdk !-- 使用的JDK版本 --/activationproperties !-- 定义环境变量 --maven.compiler.source1.8/maven.compiler.source !-- 编译代码的源版本 --maven.compiler.target1.8/maven.compiler.target !-- 编译代码的目标版本 --project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- 项目源码的编码方式 --project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding !-- 项目输出的编码方式 --java.version1.8/java.version !-- 使用的Java版本 --/properties/profile/profiles!-- 设置默认激活的环境 --activeProfilesactiveProfilejdk-1.8/activeProfile !-- 默认激活的profile --/activeProfiles
/settings文章总结
对本篇文章进行总结
以上就是今天要讲的内容阅读结束后反思和总结所学内容并尝试应用到现实中有助于深化理解和应用知识。与朋友或同事分享所读内容讨论细节并获得反馈也有助于加深对知识的理解和吸收。 如果您需要转载或者搬运这篇文章的话非常欢迎您私信我哦~ 希望各位读者大大多多支持用心写文章的博主现在时代变了 信息爆炸酒香也怕巷子深博主真的需要大家的帮助才能在这片海洋中继续发光发热所以赶紧动动你的小手点波关注❤️点波赞点波收藏⭐甚至点波评论✍️都是对博主最好的支持和鼓励 博客主页 我是廖志伟开源项目java_wxid 哔哩哔哩我是廖志伟个人社区幕后大佬个人微信号 SeniorRD微信号二维码
博主目标 程序开发这条路不能停停下来容易被淘汰掉吃不了自律的苦就要受平庸的罪持续的能力才能带来持续的自信。我本是一个很普通的程序员放在人堆里除了与生俱来的盛世美颜就剩180的大高个了就是我这样的一个人默默写博文也有好多年了。有句老话说的好牛逼之前都是傻逼式的坚持希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机可以打造属于自己的技术影响力。内心起伏不定我时而激动时而沉思。我希望自己能成为一个综合性人才具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师团队的指挥者技术团队的中流砥柱企业战略和资本规划的实战专家。这个目标的实现需要不懈的努力和持续的成长但我必须努力追求。因为我知道只有成为这样的人才我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代我们必须随时准备好迎接挑战不断学习和探索新的领域才能不断地向前推进。我坚信只要我不断努力我一定会达到自己的目标。 有需要对自己进行综合性评估进行职业方向规划我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。 可访问https://java_wxid.gitee.io/tojson/