mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 17:18:24 +08:00
docs: update docs
This commit is contained in:
parent
1946d4549f
commit
6c4a1f4e62
@ -60,8 +60,8 @@ export default defineConfig({
|
||||
{text: '基础查询', link: '/zh/base/query'},
|
||||
{text: '关联查询', link: '/zh/base/relations-query'},
|
||||
{text: '批量操作', link: '/zh/base/batch'},
|
||||
{text: '链式操作', link: '/zh/base/chain'},
|
||||
{text: 'QueryWrapper', link: '/zh/base/querywrapper'},
|
||||
{text: 'QueryWrapperChain', link: '/zh/base/query-wrapper-chain'},
|
||||
{text: 'Db + Row', link: '/zh/base/db-row'},
|
||||
{text: 'Active Record', link: '/zh/base/active-record'},
|
||||
{text: 'IService', link: '/zh/base/service'},
|
||||
|
||||
@ -5,13 +5,12 @@
|
||||
模式中,对象中既有持久存储的数据,也有针对数据的操作。Active Record 模式把数据存取逻辑作为对象的一部分,处理对象的用户知道如何把数据写入数据库,还知道如何从数据库中读出数据。
|
||||
|
||||
在 MyBatis-Flex 中实现 Active Record
|
||||
功能十分简单,只需继承 [Model](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/activerecord/Model.java)
|
||||
功能十分简单,只需让 Entity 类继承 [Model](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/activerecord/Model.java)
|
||||
即可。
|
||||
|
||||
::: tip 注意事项
|
||||
|
||||
- 使用 Active Record 功能时,项目中必须注入对应实体类的 BaseMapper 对象!
|
||||
- 如果不想手动创建 Mapper 接口,可以使用 [APT](../others/apt.md#配置文件和选项) 辅助生成。
|
||||
- 使用 Active Record 功能时,项目中必须注入对应实体类的 BaseMapper 对象。
|
||||
- 如果不想手动创建 Mapper 接口,可以使用 [代码生成器](../others/codegen.md) 或 [APT](../others/apt.md#配置文件和选项) 辅助生成。
|
||||
:::
|
||||
|
||||
## 使用示例
|
||||
@ -35,7 +34,6 @@ public class Account extends Model<Account> {
|
||||
private String userName;
|
||||
private Integer age;
|
||||
private Date birthday;
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
@ -50,7 +48,6 @@ public class AccountController {
|
||||
public boolean save(@RequestBody Account account) {
|
||||
return account.save();
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
# QueryWrapperChain
|
||||
# 链式操作
|
||||
|
||||
`QueryWrapperChain.java` 是一个对 `QueryWrapper` 进行链式调用封装的一个类,在 Service 中,
|
||||
我们可以调用 `service.queryChain()` 获得该实例。
|
||||
在 MyBatis-Flex 中,内置了 `QueryChain.java` 和 `UpdateChain.java` 用于对数据进行链式查询操作和链式数据操作(修改和删除)。
|
||||
|
||||
|
||||
## QueryChain 示例
|
||||
|
||||
例如,查询文章列表代码如下:
|
||||
|
||||
@ -24,29 +26,48 @@ class ArticleServiceTest {
|
||||
}
|
||||
```
|
||||
|
||||
若不是在 Service 中,我们也可以通过 `QueryWrapperChain.create` 方法,自己创建一个 `QueryWrapperChain` 实例,代码如下:
|
||||
若不是在 Service 中,我们也可以通过 `QueryChain.create` 方法,自己创建一个 `QueryChain` 实例,代码如下:
|
||||
|
||||
```java
|
||||
List<Article> articles = QueryWrapperChain.create(mapper)
|
||||
List<Article> articles = QueryChain.of(mapper)
|
||||
.select(ARTICLE.ALL_COLUMNS)
|
||||
.from(ARTICLE)
|
||||
.where(ARTICLE.ID.ge(100))
|
||||
.list();
|
||||
```
|
||||
|
||||
## QueryWrapperChain 的方法
|
||||
## UpdateChain 示例
|
||||
|
||||
假设我们要更新 `Account` 的 `userName` 为 "`张三`",更新年龄在之前的基础上加 1,更新代码如下:
|
||||
```java
|
||||
@Test
|
||||
public void testUpdateChain() {
|
||||
UpdateChain.of(Account.class)
|
||||
.set(Account::getUserName, "张三")
|
||||
.setRaw(Account::getAge, "age + 1")
|
||||
.where(Account::getId).eq(1)
|
||||
.update();
|
||||
}
|
||||
```
|
||||
以上方法调用时,MyBatis-Flex 内部执行的 SQL 如下:
|
||||
|
||||
```sql
|
||||
UPDATE `tb_account` SET `user_name` = '张三' , `age` = age + 1
|
||||
WHERE `id` = 1
|
||||
```
|
||||
|
||||
|
||||
## QueryChain 的方法
|
||||
|
||||
- one():获取一条数据
|
||||
- list():获取多条数据
|
||||
- page():分页查询
|
||||
- obj():当 SQL 查询只返回 1 列数据的时候,且只有 1 条数据时,可以使用此方法
|
||||
- objList():当 SQL 查询只返回 1 列数据的时候,可以使用此方法
|
||||
- remove():删除数据
|
||||
- update(entity):更新数据
|
||||
- count():查询数据条数
|
||||
- exists():是否存在,判断 count 是否大于 0
|
||||
|
||||
## 扩展方法
|
||||
## UpdateChain 扩展方法
|
||||
|
||||
### `one()` 系列方法
|
||||
|
||||
@ -37,7 +37,7 @@ public class QueryChain<T> extends QueryWrapperAdapter<QueryChain<T>> {
|
||||
this.baseMapper = baseMapper;
|
||||
}
|
||||
|
||||
public static <E> QueryChain<E> create(BaseMapper<E> baseMapper) {
|
||||
public static <E> QueryChain<E> of(BaseMapper<E> baseMapper) {
|
||||
return new QueryChain<>(baseMapper);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user