From 1fce2ee8ec8b6e50e8f3e62ad5c7ef0468320124 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Mon, 29 Jul 2024 10:39:40 +0800 Subject: [PATCH] =?UTF-8?q?:clown=5Fface:=20feat(=E9=9D=9E=E5=B8=B8?= =?UTF-8?q?=E6=BF=80=E5=8A=A8):=20=E6=88=90=E5=8A=9F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/service-utils/pom.xml | 6 --- .../service/config/MybatisPlusConfig.java | 21 -------- .../cn/bunny/entity/system/user/Userinfo.java | 36 -------------- .../bunny/entity/{system => }/user/User.java | 2 +- pom.xml | 2 +- service/pom.xml | 12 +++++ .../service/controller/UserController.java | 2 +- .../controller/UserinfoController.java | 36 -------------- .../cn/bunny/service/mapper/UserMapper.java | 2 +- .../bunny/service/mapper/UserinfoMapper.java | 18 ------- .../cn/bunny/service/service/UserService.java | 2 +- .../service/service/UserinfoService.java | 16 ------ .../service/service/impl/UserServiceImpl.java | 2 +- .../service/impl/UserinfoServiceImpl.java | 20 -------- .../src/main/resources/application-dev.yml | 6 +-- service/src/main/resources/application.yml | 49 ++----------------- .../src/main/resources/mapper/UserMapper.xml | 2 +- .../main/resources/mapper/UserinfoMapper.xml | 17 ------- .../shardingsphere.yaml => sharding.yaml} | 40 ++++++++++----- .../service/impl/UserServiceImplTest.java | 2 +- 20 files changed, 55 insertions(+), 238 deletions(-) delete mode 100644 dao/src/main/java/cn/bunny/entity/system/user/Userinfo.java rename dao/src/main/java/cn/bunny/entity/{system => }/user/User.java (95%) delete mode 100644 service/src/main/java/cn/bunny/service/controller/UserinfoController.java delete mode 100644 service/src/main/java/cn/bunny/service/mapper/UserinfoMapper.java delete mode 100644 service/src/main/java/cn/bunny/service/service/UserinfoService.java delete mode 100644 service/src/main/java/cn/bunny/service/service/impl/UserinfoServiceImpl.java delete mode 100644 service/src/main/resources/mapper/UserinfoMapper.xml rename service/src/main/resources/{static/shardingsphere.yaml => sharding.yaml} (52%) diff --git a/common/service-utils/pom.xml b/common/service-utils/pom.xml index ddff80f..68b5418 100644 --- a/common/service-utils/pom.xml +++ b/common/service-utils/pom.xml @@ -35,11 +35,5 @@ ip2region 2.6.5 - - - org.apache.shardingsphere - shardingsphere-jdbc-core-spring-boot-starter - 5.2.0 - diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java index 617a519..99b23b3 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java @@ -6,14 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerIntercep import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.session.SqlSessionFactory; -import org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,8 +17,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @Slf4j public class MybatisPlusConfig { - @Autowired - private ShardingSphereDataSource dataSource; @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { @@ -42,17 +34,4 @@ public class MybatisPlusConfig { return interceptor; } - - @Bean - public SqlSessionFactory sqlSessionFactory() throws Exception { - SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); - sqlSessionFactoryBean.setDataSource(dataSource); - // 可以设置MyBatis-Plus的配置,比如mapper.xml的位置等 - return sqlSessionFactoryBean.getObject(); - } - - @Bean - public PlatformTransactionManager transactionManager() { - return new DataSourceTransactionManager(dataSource); - } } diff --git a/dao/src/main/java/cn/bunny/entity/system/user/Userinfo.java b/dao/src/main/java/cn/bunny/entity/system/user/Userinfo.java deleted file mode 100644 index 7a985e1..0000000 --- a/dao/src/main/java/cn/bunny/entity/system/user/Userinfo.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.bunny.entity.system.user; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serializable; - -/** - *

- * - *

- * - * @author Bunny - * @since 2024-07-28 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("t_userinfo") -@ApiModel(value = "Userinfo对象", description = "") -public class Userinfo implements Serializable { - - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - private String username; - - private Integer age; -} diff --git a/dao/src/main/java/cn/bunny/entity/system/user/User.java b/dao/src/main/java/cn/bunny/entity/user/User.java similarity index 95% rename from dao/src/main/java/cn/bunny/entity/system/user/User.java rename to dao/src/main/java/cn/bunny/entity/user/User.java index 5cb453f..6667317 100644 --- a/dao/src/main/java/cn/bunny/entity/system/user/User.java +++ b/dao/src/main/java/cn/bunny/entity/user/User.java @@ -1,4 +1,4 @@ -package cn.bunny.entity.system.user; +package cn.bunny.entity.user; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/pom.xml b/pom.xml index 0457bcb..e29a465 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ 21 3.8.1 3.5.6 - 8.0.30 + 8.0.29 4.5.0 2.0.47 8.5.9 diff --git a/service/pom.xml b/service/pom.xml index a5a14fb..3e98048 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -55,6 +55,18 @@ org.aspectj aspectjweaver + + + org.apache.shardingsphere + shardingsphere-jdbc + 5.5.0 + + + org.apache.shardingsphere + shardingsphere-test-util + + + diff --git a/service/src/main/java/cn/bunny/service/controller/UserController.java b/service/src/main/java/cn/bunny/service/controller/UserController.java index cc926a9..b4e7a60 100644 --- a/service/src/main/java/cn/bunny/service/controller/UserController.java +++ b/service/src/main/java/cn/bunny/service/controller/UserController.java @@ -1,6 +1,6 @@ package cn.bunny.service.controller; -import cn.bunny.entity.system.user.User; +import cn.bunny.entity.user.User; import cn.bunny.pojo.result.Result; import cn.bunny.service.service.UserService; import cn.bunny.vo.page.PageResult; diff --git a/service/src/main/java/cn/bunny/service/controller/UserinfoController.java b/service/src/main/java/cn/bunny/service/controller/UserinfoController.java deleted file mode 100644 index f7ad205..0000000 --- a/service/src/main/java/cn/bunny/service/controller/UserinfoController.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.bunny.service.controller; - -import cn.bunny.entity.system.user.Userinfo; -import cn.bunny.pojo.result.Result; -import cn.bunny.service.service.UserinfoService; -import cn.hutool.system.UserInfo; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 前端控制器 - *

- * - * @author Bunny - * @since 2024-07-28 - */ -@Tag(name = "用户信息") -@RestController -@RequestMapping("/api/userinfo") -public class UserinfoController { - @Autowired - private UserinfoService userinfoService; - - @Operation(summary = "添加用户信息", description = "添加用户信息") - @PostMapping("addUserinfo") - public Result addUserinfo(@RequestBody Userinfo userInfo) { - userinfoService.save(userInfo); - return Result.success(); - } -} diff --git a/service/src/main/java/cn/bunny/service/mapper/UserMapper.java b/service/src/main/java/cn/bunny/service/mapper/UserMapper.java index b46ded9..2cadc19 100644 --- a/service/src/main/java/cn/bunny/service/mapper/UserMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/UserMapper.java @@ -1,6 +1,6 @@ package cn.bunny.service.mapper; -import cn.bunny.entity.system.user.User; +import cn.bunny.entity.user.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; diff --git a/service/src/main/java/cn/bunny/service/mapper/UserinfoMapper.java b/service/src/main/java/cn/bunny/service/mapper/UserinfoMapper.java deleted file mode 100644 index bf4ddbf..0000000 --- a/service/src/main/java/cn/bunny/service/mapper/UserinfoMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.bunny.service.mapper; - -import cn.bunny.entity.system.user.Userinfo; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; - -/** - *

- * Mapper 接口 - *

- * - * @author Bunny - * @since 2024-07-28 - */ -@Mapper -public interface UserinfoMapper extends BaseMapper { - -} diff --git a/service/src/main/java/cn/bunny/service/service/UserService.java b/service/src/main/java/cn/bunny/service/service/UserService.java index a3ff044..0d361f6 100644 --- a/service/src/main/java/cn/bunny/service/service/UserService.java +++ b/service/src/main/java/cn/bunny/service/service/UserService.java @@ -1,6 +1,6 @@ package cn.bunny.service.service; -import cn.bunny.entity.system.user.User; +import cn.bunny.entity.user.User; import cn.bunny.vo.page.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/service/src/main/java/cn/bunny/service/service/UserinfoService.java b/service/src/main/java/cn/bunny/service/service/UserinfoService.java deleted file mode 100644 index 3127f9f..0000000 --- a/service/src/main/java/cn/bunny/service/service/UserinfoService.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.bunny.service.service; - -import cn.bunny.entity.system.user.Userinfo; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 服务类 - *

- * - * @author Bunny - * @since 2024-07-28 - */ -public interface UserinfoService extends IService { - -} diff --git a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java index 0c2b6ef..3e4fc70 100644 --- a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java @@ -1,6 +1,6 @@ package cn.bunny.service.service.impl; -import cn.bunny.entity.system.user.User; +import cn.bunny.entity.user.User; import cn.bunny.service.mapper.UserMapper; import cn.bunny.service.service.UserService; import cn.bunny.vo.page.PageResult; diff --git a/service/src/main/java/cn/bunny/service/service/impl/UserinfoServiceImpl.java b/service/src/main/java/cn/bunny/service/service/impl/UserinfoServiceImpl.java deleted file mode 100644 index 523144b..0000000 --- a/service/src/main/java/cn/bunny/service/service/impl/UserinfoServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.bunny.service.service.impl; - -import cn.bunny.entity.system.user.Userinfo; -import cn.bunny.service.mapper.UserinfoMapper; -import cn.bunny.service.service.UserinfoService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

- * 服务实现类 - *

- * - * @author Bunny - * @since 2024-07-28 - */ -@Service -public class UserinfoServiceImpl extends ServiceImpl implements UserinfoService { - -} diff --git a/service/src/main/resources/application-dev.yml b/service/src/main/resources/application-dev.yml index ae831dd..51ad18f 100644 --- a/service/src/main/resources/application-dev.yml +++ b/service/src/main/resources/application-dev.yml @@ -1,18 +1,18 @@ bunny: master: - host: 192.168.3.98 + host: 192.168.3.21 port: 3306 sqlData: db_user username: root password: "02120212" slave1: - host: 192.168.3.98 + host: 192.168.3.21 port: 3307 sqlData: db_user username: root password: "02120212" slave2: - host: 192.168.3.98 + host: 192.168.3.21 port: 3308 sqlData: db_user username: root diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml index 247fa9e..e78efd5 100644 --- a/service/src/main/resources/application.yml +++ b/service/src/main/resources/application.yml @@ -7,57 +7,14 @@ spring: active: @profiles.active@ application: name: bunny-service - # datasource: - # # driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver - # # url: jdbc:shardingsphere:classpath:static/shardingsphere.yaml - # # type: com.zaxxer.hikari.HikariDataSource - # driver-class-name: com.mysql.cj.jdbc.Driver - # url: jdbc:mysql://${bunny.master.host}:${bunny.master.port}/${bunny.master.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - # username: ${bunny.master.username} - # password: ${bunny.master.password} + datasource: + driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver + url: jdbc:shardingsphere:classpath:sharding.yaml - shardingsphere: - datasource: - names: master, slave1, slave2 - master: - type: com.zaxxer.hikari.HikariDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://${bunny.master.host}:${bunny.master.port}/${bunny.master.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: ${bunny.master.username} - password: ${bunny.master.password} - slave1: - type: com.zaxxer.hikari.HikariDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://${bunny.slave1.host}:${bunny.slave1.port}/${bunny.slave1.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: ${bunny.slave1.username} - password: ${bunny.slave1.password} - slave2: - type: com.zaxxer.hikari.HikariDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://${bunny.slave2.host}:${bunny.slave2.port}/${bunny.slave2.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: ${bunny.slave2.username} - password: ${bunny.slave2.password} - rules: - readwrite-splitting: - data-sources: - readwrite_ds: - static-strategy: - write-data-source-name: master - read-data-source-names: slave1, slave2 - load-balancer-name: round_robin - load-balancers: - round_robin: - type: ROUND_ROBIN - sharding: - default-database-strategy: - hint: - sharding-algorithm-name: master - jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 - mybatis-plus: mapper-locations: classpath:mapper/*.xml configuration: diff --git a/service/src/main/resources/mapper/UserMapper.xml b/service/src/main/resources/mapper/UserMapper.xml index 26207a4..9424f5b 100644 --- a/service/src/main/resources/mapper/UserMapper.xml +++ b/service/src/main/resources/mapper/UserMapper.xml @@ -3,7 +3,7 @@ - + diff --git a/service/src/main/resources/mapper/UserinfoMapper.xml b/service/src/main/resources/mapper/UserinfoMapper.xml deleted file mode 100644 index 84f821b..0000000 --- a/service/src/main/resources/mapper/UserinfoMapper.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - id, username, age - - - diff --git a/service/src/main/resources/static/shardingsphere.yaml b/service/src/main/resources/sharding.yaml similarity index 52% rename from service/src/main/resources/static/shardingsphere.yaml rename to service/src/main/resources/sharding.yaml index 808d26e..7856e75 100644 --- a/service/src/main/resources/static/shardingsphere.yaml +++ b/service/src/main/resources/sharding.yaml @@ -3,27 +3,31 @@ mode: repository: type: JDBC dataSources: - master: dataSourceClassName: com.zaxxer.hikari.HikariDataSource - driverClassName: com.mysql.jdbc.Driver - jdbcUrl: jdbc:mysql://192.168.3.98:3306/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + driverClassName: com.mysql.cj.jdbc.Driver + jdbcUrl: jdbc:mysql://192.168.3.21:3306/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true username: root - password: 02120212 + password: "02120212" slave1: dataSourceClassName: com.zaxxer.hikari.HikariDataSource - driverClassName: com.mysql.jdbc.Driver - jdbcUrl: jdbc:mysql://192.168.3.98:3307/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + driverClassName: com.mysql.cj.jdbc.Driver + jdbcUrl: jdbc:mysql://192.168.3.21:3307/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true username: root - password: 02120212 + password: "02120212" slave2: dataSourceClassName: com.zaxxer.hikari.HikariDataSource - driverClassName: com.mysql.jdbc.Driver - jdbcUrl: jdbc:mysql://192.168.3.98:3308/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + driverClassName: com.mysql.cj.jdbc.Driver + jdbcUrl: jdbc:mysql://192.168.3.21:3308/db_user?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true username: root - password: 02120212 + password: "02120212" rules: - dataSourceGroups: +- !SINGLE + tables: + - "*.*" + defaultDataSource: master +- !READWRITE_SPLITTING + dataSources: readwrite_ds: writeDataSourceName: master readDataSourceNames: @@ -34,3 +38,17 @@ rules: loadBalancers: random: type: RANDOM +props: + sql-show: true + +sqlParser: + sqlStatementCache: + initialCapacity: 2000 + maximumSize: 65535 + parseTreeCache: + initialCapacity: 128 + maximumSize: 1024 + +sqlTranslator: + type: Native + useOriginalSQLWhenTranslatingFailed: true diff --git a/service/src/test/java/cn/bunny/service/service/impl/UserServiceImplTest.java b/service/src/test/java/cn/bunny/service/service/impl/UserServiceImplTest.java index 2e85aee..4826702 100644 --- a/service/src/test/java/cn/bunny/service/service/impl/UserServiceImplTest.java +++ b/service/src/test/java/cn/bunny/service/service/impl/UserServiceImplTest.java @@ -1,6 +1,6 @@ package cn.bunny.service.service.impl; -import cn.bunny.entity.system.user.User; +import cn.bunny.entity.user.User; import cn.bunny.service.mapper.UserMapper; import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test;