::stream-plugin-mp-solon
<dependency>
<groupId>org.dromara.stream-query</groupId>
<artifactId>stream-plugin-mp-solon</artifactId>
<version>${stream-query-version}</version>
</dependency>
1、描述
ORM拓展插件,完全摆脱Mapper的MybatisPlus体验,提供查询后的stream处理封装和更简化的stream操作
2、强调多数据源支持
-
强调多数据源的配置。例:demo.db1...,demo.db2...
-
强调带 name 的 DataSource Bean
-
强调使用 @Db("name") 的数据源注解
由于是mp的拓展,所以这里可以参考mp插件的文档,同时引入了本插件后不必再引入mp相关插件
3、数据源配置
# 配置数据源
demo.db1:
schema: rock
jdbcUrl: jdbc:mysql://localhost:3306/rock?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: 123456
# 在Mybatis的配置基础上进行stream-query配置
mybatis.db1:
stream-query:
basePackages: #声明需要自动生成mapper的实例类包路径列表,如果列表为空则默认给所有加了@TableName的实体类生成mapper
- "org.dromara.streamquery.stream.plugin.solon.pojo.po"
classes: #指定需要生成mapper的实体类
- org.dromara.streamquery.stream.plugin.solon.pojo.po.UserInfo
annotation: org.dromara.streamquery.stream.plugin.solon.engine.constant.GenerateMapper #为添加了该注解的实体类生成mapper
interfaceClass: org.dromara.streamquery.stream.plugin.solon.engine.mapper.IGenerateMapper #为实现了该接口的实体类生成mapper
#
#提示:使用 "**" 表达式时,范围要尽量小。不要用 "org.**"、"com.**" 之类的开头,范围太大了,会影响启动速度。
#
4、代码应用
//配置数据源
@Configuration
public class Config {
//此下的 db1 与 mybatis.db1 将对应在起来 //可以用 @Db("db1") 注入mapper
//typed=true,表示默认数据源。@Db 可不带名字注入
@Bean(name = "db1", typed = true)
public DataSource db1(@Inject("${demo.db1}") HikariDataSource ds) {
return ds;
}
}
//配置好数据源和stream-query配置后可以直接使用相关功能
@Test
void testSaveFewSql() {
UserInfo entity = new UserInfo();
entity.setName("cat");
entity.setAge(20);
entity.setEmail("myEmail");
UserInfo userInfo = new UserInfo();
userInfo.setName("ruben");
List<UserInfo> list = Arrays.asList(userInfo, entity);
//无需创建mapper,直接调用saveFewSql
boolean isSuccess = Database.saveFewSql(list);
Assertions.assertTrue(isSuccess);
Assertions.assertEquals(7, Database.count(UserInfo.class));
Assertions.assertFalse(Database.saveFewSql(Lists.empty()));
}
具体可参考: