mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
update docs
This commit is contained in:
parent
9fcb839aae
commit
ed6dbff6eb
@ -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 为 true,entity 的所有 null 属性都会被更新到数据库。
|
||||
|
||||
@ -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 |
|
||||
| -------- | -------- | -------- | -------- |
|
||||
|
||||
@ -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 的时候才会去查询总量。
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user