拓展阅读
简介
允许完全摆脱Mapper的mybatis-plus体验!
封装stream和lambda操作进行数据返回处理
安装
🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
<!-- 已包含mybatis-plus、stream-core、不用重复引入 -->
<!-- https://mvnrepository.com/artifact/org.dromara.stream-query/stream-plugin-mybatis-plus -->
<dependency>
<groupId>org.dromara.stream-query</groupId>
<artifactId>stream-plugin-mybatis-plus</artifactId>
<version>2.1.0</version>
</dependency>
<!-- 可单独引入 -->
<!-- https://mvnrepository.com/artifact/org.dromara/stream-core -->
<dependency>
<groupId>org.dromara.stream-query</groupId>
<artifactId>stream-core</artifactId>
<version>2.1.0</version>
</dependency>
配置
注入动态Mapper处理器
@Bean
public DynamicMapperHandler dynamicMapperHandler(SqlSessionFactory sqlSessionFactory) throws Exception {
// 使用ClassHelper的scanClasses方法扫描对应路径下的po生成Class文件集合放入第二个参数就可以了
final List<Class<?>>entityClassList=ClassHelper.scanClasses("com.ruben.pojo.po");
return new DynamicMapperHandler(sqlSessionFactory,entityClassList);
}
使用
Database.saveBatch(userList);
// 批量保存
Database.saveBatch(userList);
// 使用userIds进行in查询,得到map key为id,value为entity对象
Map<Long, UserInfo> idUserMap=OneToOne.of(UserInfo::getId).in(userIds).query();
小结
主要是这种设计理念比较好,太多的 mapper 写起来确实比较麻烦。
参考资料
https://www.jinq.org/