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]

Reply via email to