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
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",
|
||||
"browserHash": "e1f90fb9",
|
||||
"hash": "6f7e7a0c",
|
||||
"browserHash": "e8cc6d21",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "129bee0c",
|
||||
"needsInterop": false
|
||||
},
|
||||
"@theme/index": {
|
||||
"src": "../../../node_modules/vitepress/dist/client/theme-default/index.js",
|
||||
"file": "@theme_index.js",
|
||||
"fileHash": "7f1d5583",
|
||||
"fileHash": "98aba298",
|
||||
"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 查询数据
|
||||
- **selectOneByMap(map)**:根据 `map<字段名,值>` 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||
- **selectOneByCondition(condition)**:根据 condition 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||
- **selectOneByQuery(query)**:根据 QueryWrapper 组成的条件查询 1 条数据,若命中多条数据,则只返回第一条数据。
|
||||
- **selectOneByQueryAs(query, asType)**:和 `selectOneByQuery` 方法类似,但是在某些场景下,`query` 可能包含了 `left join` 等多表查询,返回的数据和 entity 字段不一致时,
|
||||
可以通过 `asType` 参数来指定接收的数据类型(通常是 dto、vo 等)。
|
||||
- **selectListByIds(idList)**:根据多个 id 查询,返回多条数据
|
||||
- **selectListByMap(map)**:根据 `map<字段名,值>` 组成的条件查询数据。
|
||||
- **selectListByMap(map, count)**:根据 `map<字段名,值>` 组成的条件查询数据,只取前 count 条。
|
||||
- **selectListByCondition(condition)**:根据 condition 组成的条件查询数据。
|
||||
- **selectListByCondition(condition, count)**:根据 condition 组成的条件查询数据,只取前 count 条。
|
||||
- **selectListByQuery(query)**: 根据 QueryWrapper 组成的条件查询数据。
|
||||
- **selectListByQueryAs(query, asType)**: 和 `selectListByQuery` 方法类似,但是在某些场景下,`query` 可能包含了 `left join` 等多表查询,返回的数据和 entity 字段不一致时,
|
||||
可以通过 `asType` 参数来指定接收的数据类型(通常是 dto、vo 等)。
|
||||
- **selectAll**:查询所有数据。
|
||||
- **selectCountByCondition**:根据 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 中,提供了如下的分页查询功能:
|
||||
|
||||
@ -12,7 +12,6 @@ public class ArticleDTO {
|
||||
|
||||
private String content;
|
||||
|
||||
|
||||
private String userName;
|
||||
|
||||
private int age;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user