diff --git a/4.Solon-Data/demo4033-mybatisplus_sqlserver/src/main/resources/app.yml b/4.Solon-Data/demo4033-mybatisplus_sqlserver/src/main/resources/app.yml index dccfdd8258fbb71966420011797edf9e6ae208ff..6930ccea64c9b065d0071b4a1a308eaf834d58e6 100644 --- a/4.Solon-Data/demo4033-mybatisplus_sqlserver/src/main/resources/app.yml +++ b/4.Solon-Data/demo4033-mybatisplus_sqlserver/src/main/resources/app.yml @@ -22,7 +22,7 @@ solon.dataSources: #默认 mybatis.db1: typeAliases: #支持包名 或 类名 //支持 ** 和 * - - "com.study.domain.*.**" + - "demo4033.model.*.**" mappers: #支持包名 或 类名 或 xml(.xml结尾)//支持 ** 和 * - "classpath:mapper/*.xml" configuration: @@ -32,7 +32,3 @@ mybatis.db1: logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl globalConfig: banner: false -# metaObjectHandler: "demo4031.dso.MetaObjectHandlerImpl" -# dbConfig: -# logicDeleteField: "deleted" -# logicDeleteValue: "2" \ No newline at end of file diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/img.png b/4.Solon-Data/demo4034-mybatisplus-dynamicds/img.png new file mode 100644 index 0000000000000000000000000000000000000000..7629883c3fc37b4384de34f97db0479d14024620 Binary files /dev/null and b/4.Solon-Data/demo4034-mybatisplus-dynamicds/img.png differ diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/pom.xml b/4.Solon-Data/demo4034-mybatisplus-dynamicds/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e285178967ad92e9da8ec73a39c78fb3b49e48b7 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/pom.xml @@ -0,0 +1,89 @@ + + + 4.0.0 + org.noear.solon.examples + demo4034-mybatisplus-dynamicds + demo + jar + + ${project.artifactId} + java project for solon demo + + + org.noear + solon-parent + 3.2.1 + + + + + 8 + + + + + + org.noear + solon-web + + + + org.noear + solon-logging-simple + + + + org.noear + solon-data-sqlutils + + + + + com.baomidou + mybatis-plus-solon-plugin + 3.5.9 + + + + com.zaxxer + HikariCP + 4.0.3 + + + + org.projectlombok + lombok + provided + + + + + org.noear + solon-test + test + + + + org.noear + solon-web-staticfiles + + + + + + com.mysql + mysql-connector-j + 8.0.33 + + + + + org.noear + solon-data-dynamicds + + + + + \ No newline at end of file diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/readme.md b/4.Solon-Data/demo4034-mybatisplus-dynamicds/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..0cdf4002fdd05a1376f1d53575dc22f79ec3a210 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/readme.md @@ -0,0 +1,9 @@ + +## 该模块主要为了solon+mybatisplus+solon-data-dynamicds 提供一个简单示例. + +## 效果已经在DynamicDsTest 下面出来了 + +# 注意 配置文件 不要忘记换成自己的!! + + +![img.png](img.png) \ No newline at end of file diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/DemoApp.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/DemoApp.java new file mode 100644 index 0000000000000000000000000000000000000000..6106899de21ae058f1a8d935c54adf6a31a7ab6a --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/DemoApp.java @@ -0,0 +1,14 @@ +package demo4034; + +import org.noear.solon.Solon; +import org.noear.solon.annotation.SolonMain; + +/** + * + * */ +@SolonMain +public class DemoApp { + public static void main(String[] args) { + Solon.start(DemoApp.class, args); + } +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/mapper/UserMapper.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/mapper/UserMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..e1a24477c8b40bcf30b27c234acf4bda8eb685ce --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/mapper/UserMapper.java @@ -0,0 +1,13 @@ +package demo4034.dso.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import demo4034.model.UserModel; +import org.apache.ibatis.annotations.Mapper; + + + + +@Mapper +public interface UserMapper extends BaseMapper { +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..ea374bc36ab2cb459b06eb2b3c4fef966d4f9d9f --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService.java @@ -0,0 +1,14 @@ +package demo4034.dso.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import demo4034.model.UserModel; + +/** + * @Description: 类作用 + * @Author: csc + * @Date: 2025/5/1 16:28 + * @Version: 1.0 + **/ +public interface UserService extends IService { + +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService2.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService2.java new file mode 100644 index 0000000000000000000000000000000000000000..c2a5b43a7fa66b0496650226ff34d8b0ffcc7fb4 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/UserService2.java @@ -0,0 +1,7 @@ +package demo4034.dso.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import demo4034.model.UserModel; + +public interface UserService2 extends IService { +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0f1698252445326a578090ab5e1a53b52f005894 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl.java @@ -0,0 +1,21 @@ +package demo4034.dso.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import demo4034.dso.mapper.UserMapper; +import demo4034.dso.service.UserService; +import demo4034.model.UserModel; +import lombok.AllArgsConstructor; +import org.noear.solon.annotation.Component; +import org.noear.solon.data.dynamicds.DynamicDs; + +/** + * @Description: 类作用 + * @Author: csc + * @Date: 2025/5/1 16:52 + * @Version: 1.0 + **/ +@Component +@AllArgsConstructor +@DynamicDs("db_user_r") //设置数据源 +public class UserServiceImpl extends ServiceImpl implements UserService { +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl2.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl2.java new file mode 100644 index 0000000000000000000000000000000000000000..83f8e0d69ba2dacbcbbb77852a70648a18f670c7 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/dso/service/impl/UserServiceImpl2.java @@ -0,0 +1,22 @@ +package demo4034.dso.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import demo4034.dso.mapper.UserMapper; +import demo4034.dso.service.UserService; +import demo4034.dso.service.UserService2; +import demo4034.model.UserModel; +import lombok.AllArgsConstructor; +import org.noear.solon.annotation.Component; +import org.noear.solon.data.dynamicds.DynamicDs; + +/** + * @Description: 类作用 + * @Author: csc + * @Date: 2025/5/1 16:53 + * @Version: 1.0 + **/ +@Component +@AllArgsConstructor +@DynamicDs("db2") //设置数据源 +public class UserServiceImpl2 extends ServiceImpl implements UserService2 { +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/model/UserModel.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/model/UserModel.java new file mode 100644 index 0000000000000000000000000000000000000000..dafb15177c35a3cf830a4c775f93ca8f5a41e783 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/java/demo4034/model/UserModel.java @@ -0,0 +1,23 @@ +package demo4034.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Description: 类作用 + * @Author: csc + * @Date: 2025/5/1 16:23 + * @Version: 1.0 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("user") +public class UserModel { + + private Integer id; + + private String name; +} diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/resources/app.yml b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/resources/app.yml new file mode 100644 index 0000000000000000000000000000000000000000..e7056f82e7446bb3a8b70f08ab1ff5f390ab1c78 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/main/resources/app.yml @@ -0,0 +1,53 @@ + +server: + port: 8011 + + + + +solon.dataSources: + db1!: # db1 用动态数据源演示 + class: "org.noear.solon.data.dynamicds.DynamicDataSource" + strict: true #是否严格的 + default: db2 #指定默认的内部数据源 NCC 默认NCC的sqlserver + db_user_r: #内部数据源1 + type: "com.zaxxer.hikari.HikariDataSource" + schema: demand + jdbcUrl: jdbc:mysql://127.0.0.1:3306/one?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&useSSL=false + driverClassName: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + db2: + type: "com.zaxxer.hikari.HikariDataSource" + driverClassName: com.mysql.cj.jdbc.Driver + jdbcUrl: jdbc:mysql://127.0.0.1:3306/two?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&useSSL=false + username: root + password: 123456 + + + + + + +#默认 +mybatis.db1: + typeAliases: #支持包名 或 类名 //支持 ** 和 * + - "demo4034.model.*.**" + mappers: #支持包名 或 类名 或 xml(.xml结尾)//支持 ** 和 * + - "demo4034.dso.mapper" + # - "classpath:demo4034/dso/mapper/*.xml" + configuration: + cacheEnabled: false + mapperVerifyEnabled: false + mapUnderscoreToCamelCase: true + # org.apache.ibatis.logging.nologging.NoLoggingImpl + logImpl: org.apache.ibatis.logging.stdout.StdOutImpl + globalConfig: + banner: false + + + + + + + diff --git a/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/test/java/demo4034/DynamicDsTest.java b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/test/java/demo4034/DynamicDsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8975f7d87816aca12dea3a2b6d97bab8e66f3773 --- /dev/null +++ b/4.Solon-Data/demo4034-mybatisplus-dynamicds/src/test/java/demo4034/DynamicDsTest.java @@ -0,0 +1,37 @@ +package demo4034; + +import demo4034.dso.service.UserService; +import demo4034.dso.service.UserService2; +import demo4034.model.UserModel; +import org.junit.jupiter.api.Test; +import org.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonTest; + +import java.util.List; + +/** + * @Description: 类作用 + * @Author: csc + * @Date: 2025/5/1 16:57 + * @Version: 1.0 + **/ +@SolonTest +public class DynamicDsTest { + + @Inject + private UserService userService; + + + @Inject + private UserService2 userService2; + + + @Test + public void ceshi(){ + List list = userService.list(); + List list2 = userService2.list(); + list.forEach(System.out::println); + list2.forEach(System.out::println); + } + +} diff --git a/4.Solon-Data/pom.xml b/4.Solon-Data/pom.xml index bee374c9d073103a24e435685ee58d5b20dc719f..e1f57d230b93602fd5d907f1828f67d882cc08c2 100644 --- a/4.Solon-Data/pom.xml +++ b/4.Solon-Data/pom.xml @@ -46,6 +46,7 @@ demo4082-hibernate demo4101-redisson demo4033-mybatisplus_sqlserver + demo4034-mybatisplus-dynamicds