# 动态数据源SDK **Repository Path**: fuscshome/dynamic-datasource ## Basic Information - **Project Name**: 动态数据源SDK - **Description**: mybatisplus动态数据源组件与shardingsphere分库分表组件整合。 通过配置+注解实现数据源动态路由以及分库分表 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-14 - **Last Updated**: 2024-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 动态数据源SDK #### 介绍 mybatisplus动态数据源组件与shardingsphere分库分表组件整合。 通过配置+注解实现数据源动态路由以及分库分表 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. pom配置 ```java com.open.datasource open-datasource-core 1.0-SNAPSHOT ``` 2. 启动配置 ```yaml open: middleware: oplog: enabled: true filterEnabled: true server: port: 8100 servlet: contextPath: /sharding spring: application: name: logPortal datasource: dynamic: datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver password: 123456 url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true username: root slave: driver-class-name: com.mysql.cj.jdbc.Driver password: 123456 url: jdbc:mysql://localhost:3306/mybatis_plus2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true username: root primary: master sharding: datasource: sd: dataSources: ds0: driver-class-name: com.mysql.cj.jdbc.Driver password: 123456 url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true username: root ds1: driver-class-name: com.mysql.cj.jdbc.Driver password: 123456 url: jdbc:mysql://localhost:3306/mybatis_plus2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true username: root tables: user: actualDataNodes: ds${0..1}.user_${0..1} databaseStrategy: inline: algorithmInlineExpression: ds${id % 2} shardingColumn: id logicTable: user tableStrategy: inline: algorithmInlineExpression: user_${age % 2} shardingColumn: age ``` 3. 启动类上打上注解 ```java @EnableShardingDatasource ``` 4. 动态路由注解 ```java @GetMapping("/queryUser") @ResponseBody @DS("sd") public PageDTO queryUser() { PageDTO pageDTO = new PageDTO(); pageDTO.setPages(1); pageDTO.setSize(10000); PageDTO page = userService.page(pageDTO); return page; } ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)