StupidManYI commented on issue #28294: URL: https://github.com/apache/shardingsphere/issues/28294#issuecomment-1696779623
pom.xml ``` <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.ingsha</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--spring && springboot --> <spring-boot.version>3.1.2</spring-boot.version> <!-- db --> <druid.version>1.2.8</druid.version> <mysql.version>8.0.17</mysql.version> <shardingsphere.version>5.2.0</shardingsphere.version> <sharding-core-api.version>4.1.1</sharding-core-api.version> <mybatis-plus.version>3.5.2</mybatis-plus.version> <!-- util --> <hutool-all.version>5.8.20</hutool-all.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-core-api</artifactId> <version>${sharding-core-api.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId> <version>${shardingsphere.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool-all.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project> ``` application.yml ``` server: port: 12001 servlet: context-path: /westudy/api/v1 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl spring: sharding-sphere: mode: type: Memory datasource: #数据库名称(可以与数据库中的库名不一致) names: ds0 ds0: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://xxx:3306/oauth_role?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&useTimezone=true&tinyInt1isBit=false username: root password: "root" # # 数据库连接池的最小连接数 min-idle: 2 # 初始化连接数 initial-size: 1 # 最大连接数 max-total: 5 max-wait-millis: 200 connectProperties: { connectionInitSqls: SET NAMES utf8mb4 } # connectionInitSqls: SET NAMES utf8mb4 #让 druid 支持特殊字符 加上shardingsphere会报错 rules: defaultDatabaseStrategy: inline: sharding-column: id algorithm-expression: ds0 defaultKeyGenerateStrategy: type: MyShardingKeyGenerator column: id # tables: # #逻辑表名,这里的user为逻辑表名,user_info_0,user_info_1,user_info_2为实际表 # sys_user: # actual-data-nodes: ds0.sys_user_$->{0..1} # key-generator: # #id使用雪花算法 # column: id # #雪花算法 # type: MyShardingKeyGenerator # table-strategy: # inline: # sharding-column: id # algorithm-expression: sys_user_$->{id % 2} # sys_user_role: # actual-data-nodes: ds0.sys_user_role_$->{0..1} # key-generator: # #id使用雪花算法 # column: user_id # #雪花算法 # type: MyShardingKeyGenerator # table-strategy: # inline: # sharding-column: user_id # algorithm-expression: sys_user_role_$->{user_id % 2} # user_oss_record: # actual-data-nodes: ds0.user_oss_record_$->{0..1} # key-generator: # #id使用雪花算法 # column: user_id # #雪花算法 # type: MyShardingKeyGenerator # table-strategy: # inline: # sharding-column: user_id # algorithm-expression: user_oss_record_$->{user_id % 2} # user_info: # actual-data-nodes: ds0.user_info_$->{0..1} # key-generator: # #id使用雪花算法 # column: user_id # #雪花算法 # type: MyShardingKeyGenerator # table-strategy: # inline: # sharding-column: user_id # algorithm-expression: user_info_$->{user_id % 2} # default-table-strategy: # inline: # sharding-column: id # algorithm-expression: ds0 ``` MybatisPlusConfig.class ``` package com.ingsha.application.app.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author Yi * @ClassName MybatisPlusConfig * @Date 2022/5/13 14:06 */ @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } /** * 分页插件 * * @return */ @Bean public PaginationInnerInterceptor paginationInnerInterceptor() { return new PaginationInnerInterceptor(); } /** * 乐观锁插件 * * @return */ @Bean public OptimisticLockerInnerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInnerInterceptor(); } } ``` ``` ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
