update docs

This commit is contained in:
开源海哥 2023-04-06 15:01:39 +08:00
parent 9fcb839aae
commit ed6dbff6eb
3 changed files with 27 additions and 20 deletions

View File

@ -20,6 +20,7 @@ Mybatis-Flex 内置了一个名为 `BaseMapper` 的接口,它实现了基本
- **deleteBatchByIds(idList)** :根据主键的 集合,批量删除多条数据
- **deleteByMap(map)** :根据 `map<字段名,值>` 组成的条件删除数据,字段名和值的关系为相等的关系,同时,防止 "不小心" 全表
删除数据map 的值不允许为 null 或者 空数据。
- **deleteByCondition(condition)**:根据 condition 构建的条件来删除数据
- **deleteByQuery(queryWrapper)**:根据 queryWrapper 组成的条件删除数据。
@ -32,6 +33,14 @@ queryWrapper.where(ACCOUNT.ID.ge(100));
//通过 queryWrapper 删除
accountMapper.deleteByQuery(queryWrapper);
```
**deleteByCondition(condition)** 方法示例:
```java
accountMapper.deleteByCondition(ACCOUNT.ID.ge(100));
```
以上的代码,会删除所有 id >= 100 的数据,其执行的 Sql 如下:
```sql
@ -48,6 +57,8 @@ delete from tb_account where id >= 100;
- **update(entity)**:根据主键更新到 entity 到数据库,要求主键值不能为空,否则会抛出异常。同时,数据为 null 的字段 **不会** 更新到数据库。
- **update(entity, ignoreNulls)**:根据主键更新到 entity 到数据库要求主键值不能为空。ignoreNulls 为是否忽略 null 字段,如果为 true所有 null 字段都会更新到数据库。
- **updateByMap(entity, map)**:根据 `map<字段名,值>` 组成的条件更新到 entity 到数据库entity 可以没有主键(如果有也会被忽略), entity 的 null 属性,会自动被忽略。
- **updateByCondition(entity, condition)**:根据 condition 构建的条件更新到 entity 到数据库entity 可以没有主键(如果有也会被忽略), entity 的 null 属性,会自动被忽略。
- **updateByCondition(entity, ignoreNulls, condition)**ignoreNulls 是否忽略 null 值,默认为 true
- **updateByQuery(entity, queryWrapper)**:根据 queryWrapper 组成的条件更新到 entity 到数据库entity 可以没有主键(如果有也会被忽略), entity 的 null 属性,会自动被忽略。
- **updateByQuery(entity, ignoreNulls, queryWrapper)**:据 queryWrapper 组成的条件更新到 entity 到数据库entity 可以没有主键(如果有也会被忽略)。 ignoreNulls 用于是否忽略 entity 的 null 属性
若 ignoreNulls 为 trueentity 的所有 null 属性都会被更新到数据库。

View File

@ -5,7 +5,7 @@
MyBatis-Flex 主要是和 `MyBatis-Plus``Fluent-Mybatis` 对比内容来源其官网、git 或者 网络文章,若有错误欢迎指正。
- MyBatis-Plus老牌的 MyBatis 增强框架
- Fluent-Mybatis阿里开发的 Mybatis 增强框架(是阿里开发的吗?
- Fluent-Mybatis阿里云开发的 Mybatis 增强框架(来至于阿里云·云效产品团队
| 功能或特点 | MyBatis-Flex | MyBatis-Plus | Fluent-Mybatis |
| -------- | -------- | -------- | -------- |

View File

@ -6,12 +6,16 @@
- **selectOneById(id)**:根据主键 id 查询数据
- **selectOneByMap(map)**:根据 `map<字段名,值>` 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
- **selectOneByCondition(condition)**:根据 condition 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
- **selectOneByQuery(query)**:根据 QueryWrapper 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
- **selectListByIds(idList)**:根据多个 id 查询,返回多条数据
- **selectListByMap(map)**:根据 `map<字段名,值>` 组成的条件查询数据。
- **selectListByMap(map, count)**:根据 `map<字段名,值>` 组成的条件查询数据,只取前 count 条。
- **selectListByCondition(condition)**:根据 condition 组成的条件查询数据。
- **selectListByCondition(condition, count)**:根据 condition 组成的条件查询数据,只取前 count 条。
- **selectListByQuery(query)** 根据 QueryWrapper 组成的条件查询数据。
- **selectAll**:查询所有数据。
- **selectCountByCondition**:根据 QueryWrapper 查询数据量。
- **selectCountByQuery**:根据 QueryWrapper 查询数据量。
## 分页查询
@ -20,10 +24,21 @@
```java
Page<T> paginate(int pageNumber, int pageSize, QueryWrapper queryWrapper);
Page<T> paginate(int pageNumber, int pageSize, int totalRow, QueryWrapper queryWrapper);
Page<T> paginate(int pageNumber, int pageSize, QueryCondition condition);
Page<T> paginate(int pageNumber, int pageSize, int totalRow, QueryCondition condition);
```
- pageNumber 当前页码,从 1 开始
- pageSize 每 1 页的数据量
- totalRow 非必须值若传入该值mybatis-flex 则不再去查询总数据量(若传入小于 0 的数值,也会去查询总量)。
- queryWrapper 查询条件
- QueryCondition 查询条件
::: tip totalRow 的说明
在一般的分页场景中,只有第一页的时候有必要去查询数据总量,第二页以后是没必要的(因为第一页已经拿到总量了),因此,
第二页的时候,我们可以带入 `totalRow`,这样能提高程序的查询效率。
:::
paginate 的返回值为 Page 对象Page 类的定义如下:
@ -37,23 +52,4 @@ public class Page<T> implements Serializable {
}
```
在 Page 的定义中,我们知道:通过 `paginate` 方法去查询数据的时候,除了数据列表以外,还查询的数据的总量,才能构造出 `Page` 对象。
在一般的分页场景中只有第一页的时候有必要去查询数据总量第二页以后是没必要的因为第一页已经拿到总量了因此Mybatis-Flex 的分页查询还提供了另一个方法:
```java
Page<T> paginate(Page<T> page, QueryWrapper queryWrapper);
```
这个方法可以直接传入 数据的总量 `totalPage`,示例如下:
```java
// 多一个 totalPage 参数
Page<T> page = new Page<>(pageNumber, pageSize, totalPage);
Page<T> resultPage = paginate(page, queryWrapper);
```
当构造的 `page` 对象已经有 totalPage 后,再通过 `paginate(page, queryWrapper)` 方法去查询,则不会再查询数据总量,从提高了性能。
> 只有 totalRow 小于 0 的时候才会去查询总量。