# stream-query
**Repository Path**: xddcode/stream-query
## Basic Information
- **Project Name**: stream-query
- **Description**: 允许完全摆脱Mapper的mybatis-plus体验!可以使用类似“工具类”这样的静态函数进行数据库操作
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://dromara.gitee.io/stream-query
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 152
- **Created**: 2023-04-03
- **Last Updated**: 2023-04-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
stream-query
hardcore extreme opinionated.
👉 stream-query 👈
## 📚简介
允许完全摆脱`Mapper`的`mybatis-plus`体验!
封装`stream`和`lambda`操作进行数据返回处理
## 📝文档
[中文文档](https://dromara.gitee.io/stream-query)
[仓库地址](https://gitee.com/dromara/stream-query)
[视频教程](https://www.bilibili.com/video/BV1UP411F7Ai)
## 📦安装
### 🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
```xml
org.dromara
stream-plugin-mybatis-plus
x.x.x
org.dromara
stream-core
x.x.x
```
### 🍊Gradle
在项目的build.gradle的dependencies中加入以下内容:
```Gradle
implementation group: 'org.dromara', name: 'stream-plugin-mybatis-plus', version: 'x.x.x'
implementation group: 'org.dromara', name: 'stream-core', version: 'x.x.x'
```
## 🔧 配置
注入动态`Mapper`处理器
```java
@Bean
public DynamicMapperHandler dynamicMapperHandler(SqlSessionFactory sqlSessionFactory)throws Exception{
// 使用ClassHelper的scanClasses方法扫描对应路径下的po生成Class文件集合放入第二个参数就可以了
final List>entityClassList=ClassHelper.scanClasses("com.ruben.pojo.po");
return new DynamicMapperHandler(sqlSessionFactory,entityClassList);
}
```
## 📚使用
```java
Database.saveBatch(userList);
```
```java
// 批量保存
Database.saveBatch(userList);
// 使用userIds进行in查询,得到map key为id,value为entity对象
Map idUserMap=OneToOne.of(UserInfo::getId).in(userIds).query();
```
[更多使用姿势-Database](https://dromara.gitee.io/stream-query/#/docs/module/plugin/mybatis-plus/database)
[更多使用姿势-One/Many/OneToMany](https://dromara.gitee.io/stream-query/#/docs/module/plugin/mybatis-plus/query?id=one)
更多请看[文档](https://dromara.gitee.io/stream-query)
## 🐞提供bug反馈或建议
提交问题反馈请说明正在使用的JDK版本、stream-query版本和相关依赖库版本。如果可以请尽量详细或加图片以便于我们去复现
[Gitee issue](https://gitee.com/dromara/stream-query/issues)
[Github issue](https://github.com/dromara/stream-query/issues)
## 🏗️添砖加瓦️
如果您感觉我们的代码有需要优化的地方或者有更好的方案欢迎随时提pr
### 📚包说明
| 包名 | 内容 |
|---------------|--------------------------|
| stream-query | 优雅的流式操作 |
| stream-plugin | orm框架->使用优雅的Lambda进行对数据库进行一系列操作 |
### 🐾贡献代码的步骤
1. 在`Gitee`或者`Github`上`fork`项目到自己的`repo`
2. 把`fork`过去的项目也就是你的项目`clone`到你的本地
3. 修改代码
4. `commit`后`push`到自己的库
5. 登录`Gitee`或`Github`在你仓库首页可以看到一个 `pull request` 按钮,点击它,填写一些说明信息,然后提交即可。
等待维护者合并
### 📐PR遵照的原则
`stream-query`欢迎任何人为`stream-query`添砖加瓦,贡献代码,规范如下:
- 注释完备,尤其每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,必要时请添加单元测试,如果愿意,也可以加上你的大名。
- 新加的方法尽可能不要使用额外的第三方库方法
- 我们如果关闭了你的issue或pr,请不要诧异,这是我们保持问题处理整洁的一种方式,你依旧可以继续讨论,当有讨论结果时我们会重新打开。
powered by [GitHub Copilot](https://copilot.github.com)
powered by [JetBrains](https://www.jetbrains.com)Open source license