mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
update docs
This commit is contained in:
parent
d41a72e06e
commit
da8a3a9d97
@ -61,8 +61,8 @@ export default defineConfig({
|
|||||||
items: [
|
items: [
|
||||||
{text: '增、删、改', link: '/zh/base/add-delete-update'},
|
{text: '增、删、改', link: '/zh/base/add-delete-update'},
|
||||||
{text: '查询(多表和分页)', link: '/zh/base/query'},
|
{text: '查询(多表和分页)', link: '/zh/base/query'},
|
||||||
{text: '批量操作', link: '/zh/base/batch'},
|
|
||||||
{text: '一对多、多对一', link: '/zh/base/field-query'},
|
{text: '一对多、多对一', link: '/zh/base/field-query'},
|
||||||
|
{text: '批量操作', link: '/zh/base/batch'},
|
||||||
{text: 'QueryWrapper', link: '/zh/base/querywrapper'},
|
{text: 'QueryWrapper', link: '/zh/base/querywrapper'},
|
||||||
{text: 'Db + Row', link: '/zh/base/db-row'},
|
{text: 'Db + Row', link: '/zh/base/db-row'},
|
||||||
{text: 'IService', link: '/zh/base/service'},
|
{text: 'IService', link: '/zh/base/service'},
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
在很多场景下,我们可能会用到 `一对多`、`一对一`、`多对一`、`多对多`等场景的关联查询,MyBatis-Flex 内置了相关的方法,用于支持此类场景。
|
在很多场景下,我们可能会用到 `一对多`、`一对一`、`多对一`、`多对多`等场景的关联查询,MyBatis-Flex 内置了相关的方法,用于支持此类场景。
|
||||||
|
|
||||||
## 代码示例(Field Query)
|
## Field Query 代码示例
|
||||||
|
|
||||||
以下是文章的示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表 `article_category_mapping`。
|
以下是文章的示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表 `article_category_mapping`。
|
||||||
|
|
||||||
@ -106,32 +106,48 @@ List<Article> articles = mapper.selectListByQuery(query
|
|||||||
通过以上内容看出,`Article` 的任何属性,都是可以通过传入 `FieldQueryBuilder` 来构建 `QueryWrapper` 进行再次查询,
|
通过以上内容看出,`Article` 的任何属性,都是可以通过传入 `FieldQueryBuilder` 来构建 `QueryWrapper` 进行再次查询,
|
||||||
这些不仅仅只适用于 `一对多`、`一对一`、`多对一`、`多对多`等场景。任何 `Article` 对象里的属性,需要二次查询赋值的,都是可以通过这种方式进行。
|
这些不仅仅只适用于 `一对多`、`一对一`、`多对一`、`多对多`等场景。任何 `Article` 对象里的属性,需要二次查询赋值的,都是可以通过这种方式进行。
|
||||||
|
|
||||||
## 结果映射
|
[comment]: <> (## 结果映射)
|
||||||
|
|
||||||
您也可以继续使用联表查询,如果是原生 MyBatis 的话,可以使用 `<resultMap>` 标签来构建结果映射,在 MyBatis-Flex 中提供了自动结果映射功能,这样您就可以只关注于 SQL 语句的构建。
|
[comment]: <> (您也可以继续使用联表查询,如果是原生 MyBatis 的话,可以使用 `<resultMap>` 标签来构建结果映射,在 MyBatis-Flex 中提供了自动结果映射功能,这样您就可以只关注于 SQL 语句的构建。)
|
||||||
|
|
||||||
## 代码示例(Join Query)
|
## Join Query
|
||||||
|
|
||||||
这里以用户和角色的 `多对多` 关系作为例子,首先有用户表和角色表,分别对应着用户类和角色类:
|
Join Query 是用于构建原生 MyBatis 如下的 `<resultMap>`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<resultMap id="testResultMap" type="com.mybatisflex.test.model.UserVO">
|
||||||
|
<id column="user_id" property="userId"/>
|
||||||
|
<result column="user_name" property="userName"/>
|
||||||
|
<collection property="roleList" ofType="com.mybatisflex.test.model.Role">
|
||||||
|
<id column="role_id" property="roleId"/>
|
||||||
|
<result column="role_key" property="roleKey"/>
|
||||||
|
<result column="role_name" property="roleName"/>
|
||||||
|
</collection>
|
||||||
|
</resultMap>
|
||||||
|
```
|
||||||
|
|
||||||
|
以上的 xml 是原生的 MyBatis 示例,在 MyBatis-Flex 我们不需要编写 xml 的 `<resultMap>`,这个过程由 MyBatis-Flex 自动完成,
|
||||||
|
我们只需要关注 MyBatis-Flex 的 SQL 构建即可。
|
||||||
|
|
||||||
|
## Join Query 代码示例
|
||||||
|
|
||||||
|
这里以 **用户** 和 **角色** 的 `多对多` 关系作为例子,用户表和角色表,分别对应着用户类和角色类:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
@Table("sys_user")
|
@Table("sys_user")
|
||||||
public class User {
|
public class User {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
private Integer userId;
|
private Integer userId;
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Table("sys_role")
|
@Table("sys_role")
|
||||||
public class Role {
|
public class Role {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
private Integer roleId;
|
private Integer roleId;
|
||||||
private String roleKey;
|
private String roleKey;
|
||||||
private String roleName;
|
private String roleName;
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -139,11 +155,9 @@ public class Role {
|
|||||||
|
|
||||||
```java
|
```java
|
||||||
public class UserVO {
|
public class UserVO {
|
||||||
|
|
||||||
private String userId;
|
private String userId;
|
||||||
private String userName;
|
private String userName;
|
||||||
private List<Role> roleList;
|
private List<Role> roleList;
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user