mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-06 16:48:24 +08:00
update docs
This commit is contained in:
parent
c1c93487d4
commit
45dfad20e6
41
docs/.vitepress/cache/deps/@theme_index.js
vendored
41
docs/.vitepress/cache/deps/@theme_index.js
vendored
@ -1,41 +0,0 @@
|
|||||||
// node_modules/vitepress/dist/client/theme-default/index.js
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
|
|
||||||
|
|
||||||
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/base.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
|
|
||||||
import "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
|
|
||||||
import VPBadge from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
|
||||||
import Layout from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/Layout.vue";
|
|
||||||
import { default as default2 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
|
|
||||||
import { default as default3 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
|
|
||||||
import { default as default4 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
|
|
||||||
import { default as default5 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
|
|
||||||
import { default as default6 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
|
|
||||||
import { default as default7 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
|
|
||||||
import { default as default8 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
|
|
||||||
import { default as default9 } from "/Users/michael/work/git/mybatis-flex/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
|
|
||||||
var theme = {
|
|
||||||
Layout,
|
|
||||||
enhanceApp: ({ app }) => {
|
|
||||||
app.component("Badge", VPBadge);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var without_fonts_default = theme;
|
|
||||||
export {
|
|
||||||
default5 as VPDocAsideSponsors,
|
|
||||||
default3 as VPHomeFeatures,
|
|
||||||
default2 as VPHomeHero,
|
|
||||||
default4 as VPHomeSponsors,
|
|
||||||
default9 as VPTeamMembers,
|
|
||||||
default6 as VPTeamPage,
|
|
||||||
default8 as VPTeamPageSection,
|
|
||||||
default7 as VPTeamPageTitle,
|
|
||||||
without_fonts_default as default
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=@theme_index.js.map
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"sources": ["../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js"],
|
|
||||||
"sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\n// Note: if we add more optional components here, i.e. components that are not\n// used in the theme by default unless the user imports them, make sure to update\n// the `lazyDefaultThemeComponentsRE` regex in src/node/build/bundle.ts.\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n"],
|
|
||||||
"mappings": ";AAAA,OAAO;;;ACAP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AAInB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
|
|
||||||
"names": ["default"]
|
|
||||||
}
|
|
||||||
12
docs/.vitepress/cache/deps/_metadata.json
vendored
12
docs/.vitepress/cache/deps/_metadata.json
vendored
@ -1,17 +1,11 @@
|
|||||||
{
|
{
|
||||||
"hash": "02c07141",
|
"hash": "6f7e7a0c",
|
||||||
"browserHash": "e1f90fb9",
|
"browserHash": "e8cc6d21",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"vue": {
|
"vue": {
|
||||||
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||||
"file": "vue.js",
|
"file": "vue.js",
|
||||||
"fileHash": "129bee0c",
|
"fileHash": "98aba298",
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@theme/index": {
|
|
||||||
"src": "../../../node_modules/vitepress/dist/client/theme-default/index.js",
|
|
||||||
"file": "@theme_index.js",
|
|
||||||
"fileHash": "7f1d5583",
|
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
16
docs/.vitepress/theme/MyLayout.vue
Normal file
16
docs/.vitepress/theme/MyLayout.vue
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!--.vitepress/theme/MyLayout.vue-->
|
||||||
|
<script setup>
|
||||||
|
import DefaultTheme from 'vitepress/theme'
|
||||||
|
const { Layout } = DefaultTheme
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<Layout>
|
||||||
|
<!-- <template #doc-footer-before>-->
|
||||||
|
<!-- <div class="tip custom-block" style="margin-bottom: 24px">-->
|
||||||
|
<!-- <p class="custom-block-title">广告</p>-->
|
||||||
|
<!-- <p>此次广告位招租。</p>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
</Layout>
|
||||||
|
</template>
|
||||||
10
docs/.vitepress/theme/index.js
Normal file
10
docs/.vitepress/theme/index.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// .vitepress/theme/index.js
|
||||||
|
import DefaultTheme from 'vitepress/theme'
|
||||||
|
import MyLayout from './MyLayout.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
...DefaultTheme,
|
||||||
|
// override the Layout with a wrapper component that
|
||||||
|
// injects the slots
|
||||||
|
Layout: MyLayout
|
||||||
|
}
|
||||||
@ -2,22 +2,83 @@
|
|||||||
|
|
||||||
## 基础查询
|
## 基础查询
|
||||||
|
|
||||||
在 Mybatis-Flex 的 BaseMapper 中,提供了如下的功能用于查询数据库的数据:
|
在 Mybatis-Flex 的 `BaseMapper` 中,提供了如下的功能用于查询数据库的数据:
|
||||||
|
|
||||||
- **selectOneById(id)**:根据主键 id 查询数据
|
- **selectOneById(id)**:根据主键 id 查询数据
|
||||||
- **selectOneByMap(map)**:根据 `map<字段名,值>` 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
- **selectOneByMap(map)**:根据 `map<字段名,值>` 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||||
- **selectOneByCondition(condition)**:根据 condition 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
- **selectOneByCondition(condition)**:根据 condition 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||||
- **selectOneByQuery(query)**:根据 QueryWrapper 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
- **selectOneByQuery(query)**:根据 QueryWrapper 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||||
|
- **selectOneByQueryAs(query, asType)**:和 `selectOneByQuery` 方法类似,但是在某些场景下,`query` 可能包含了 `left join` 等多表查询,返回的数据和 entity 字段不一致时,
|
||||||
|
可以通过 `asType` 参数来指定接收的数据类型(通常是 dto、vo 等)。
|
||||||
- **selectListByIds(idList)**:根据多个 id 查询,返回多条数据
|
- **selectListByIds(idList)**:根据多个 id 查询,返回多条数据
|
||||||
- **selectListByMap(map)**:根据 `map<字段名,值>` 组成的条件查询数据。
|
- **selectListByMap(map)**:根据 `map<字段名,值>` 组成的条件查询数据。
|
||||||
- **selectListByMap(map, count)**:根据 `map<字段名,值>` 组成的条件查询数据,只取前 count 条。
|
- **selectListByMap(map, count)**:根据 `map<字段名,值>` 组成的条件查询数据,只取前 count 条。
|
||||||
- **selectListByCondition(condition)**:根据 condition 组成的条件查询数据。
|
- **selectListByCondition(condition)**:根据 condition 组成的条件查询数据。
|
||||||
- **selectListByCondition(condition, count)**:根据 condition 组成的条件查询数据,只取前 count 条。
|
- **selectListByCondition(condition, count)**:根据 condition 组成的条件查询数据,只取前 count 条。
|
||||||
- **selectListByQuery(query)**: 根据 QueryWrapper 组成的条件查询数据。
|
- **selectListByQuery(query)**: 根据 QueryWrapper 组成的条件查询数据。
|
||||||
|
- **selectListByQueryAs(query, asType)**: 和 `selectListByQuery` 方法类似,但是在某些场景下,`query` 可能包含了 `left join` 等多表查询,返回的数据和 entity 字段不一致时,
|
||||||
|
可以通过 `asType` 参数来指定接收的数据类型(通常是 dto、vo 等)。
|
||||||
- **selectAll**:查询所有数据。
|
- **selectAll**:查询所有数据。
|
||||||
- **selectCountByCondition**:根据 QueryWrapper 查询数据量。
|
- **selectCountByCondition**:根据 QueryWrapper 查询数据量。
|
||||||
- **selectCountByQuery**:根据 QueryWrapper 查询数据量。
|
- **selectCountByQuery**:根据 QueryWrapper 查询数据量。
|
||||||
|
|
||||||
|
## 关联查询(或多表查询)
|
||||||
|
|
||||||
|
在 `BaseMapper` 中,提供了 `selectOneByQueryAs`、`selectListByQueryAs` 、`paginateAs` 等方法,用于处理关联查询的场景。
|
||||||
|
|
||||||
|
假设有 `tb_account` 用户表和 `tb_article` 文章表,他们的字段分别如下:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE TABLE IF NOT EXISTS `tb_account`
|
||||||
|
(
|
||||||
|
`id` INTEGER PRIMARY KEY auto_increment,
|
||||||
|
`user_name` VARCHAR(100),
|
||||||
|
`age` Integer,
|
||||||
|
`birthday` DATETIME
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `tb_article`
|
||||||
|
(
|
||||||
|
`id` INTEGER PRIMARY KEY auto_increment,
|
||||||
|
`account_id` Integer,
|
||||||
|
`title` VARCHAR(100),
|
||||||
|
`content` text
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
当我们进行关联查询时,可以通过如下代码进行:
|
||||||
|
|
||||||
|
1、定义 `ArticleDTO` 类
|
||||||
|
```java
|
||||||
|
public class ArticleDTO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private Long accountId;
|
||||||
|
private String title;
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
//以下用户相关字段
|
||||||
|
private String userName;
|
||||||
|
private int age;
|
||||||
|
private Date birthday;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2、使用 `QueryWrapper` 构建 `left join` 查询,查询结果通过 `ArticleDTO` 类型接收。
|
||||||
|
```java
|
||||||
|
QueryWrapper query = QueryWrapper.create()
|
||||||
|
.select(ARTICLE.ALL_COLUMNS)
|
||||||
|
.select(ACCOUNT.USER_NAME,ACCOUNT.AGE,ACCOUNT.BIRTHDAY)
|
||||||
|
.from(ARTICLE)
|
||||||
|
.leftJoin(ACCOUNT).on(ARTICLE.ACCOUNT_ID.eq(ACCOUNT.ID))
|
||||||
|
.where(ACCOUNT.ID.ge(0));
|
||||||
|
|
||||||
|
List<ArticleDTO> results = mapper.selectListByQueryAs(query, ArticleDTO.class);
|
||||||
|
System.out.println(results);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 分页查询
|
## 分页查询
|
||||||
|
|
||||||
在 Mybatis-Flex 的 BaseMapper 中,提供了如下的分页查询功能:
|
在 Mybatis-Flex 的 BaseMapper 中,提供了如下的分页查询功能:
|
||||||
|
|||||||
@ -12,7 +12,6 @@ public class ArticleDTO {
|
|||||||
|
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
|
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
private int age;
|
private int age;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user