From 6712f5bd88bb6ea0ee2964506c17d6721f681d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8E=ABsama?= <837080904@qq.com> Date: Fri, 8 Sep 2023 06:36:42 +0000 Subject: [PATCH] =?UTF-8?q?update=20docs/zh/intro/use-in-kotlin.md.=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=BC=94=E7=A4=BA=E7=9A=84sql=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96select=E8=B0=83=E7=94=A8=E6=95=88=E6=9E=9C?= =?UTF-8?q?=EF=BC=8C=E6=95=B4=E4=BD=93=E5=B8=83=E5=B1=80=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 卡莫sama <837080904@qq.com> --- docs/zh/intro/use-in-kotlin.md | 44 ++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/docs/zh/intro/use-in-kotlin.md b/docs/zh/intro/use-in-kotlin.md index df2ce2bd..b2e8aa90 100644 --- a/docs/zh/intro/use-in-kotlin.md +++ b/docs/zh/intro/use-in-kotlin.md @@ -1,10 +1,10 @@ # 在 Kotlin 中使用 Mybatis-Flex -MyBatis-Flex-Kotlin 基于 Mybatis-Flex 的 Kotlin 扩展模块,方便 Kotlin 开发者使用 MyBatis-Flex 进行开发。 +**MyBatis-Flex-Kotlin 基于 Mybatis-Flex 的 Kotlin 扩展模块,方便 Kotlin 开发者使用 MyBatis-Flex 进行开发。** -它继承了 Mybatis-Flex 轻量的特性,同时拥有 Kotlin 特有的扩展方法、中缀表达式与DSL等语法支持, -使其拥有了更高的灵活性。让我们可以更加轻松的在 Kotlin 中使用 Mybaits-Flex 所带来的开发效率和开发体验。 +>它继承了 Mybatis-Flex 轻量的特性,同时拥有 Kotlin 特有的扩展方法、中缀表达式与DSL等语法支持, +>使其拥有了更高的灵活性。让我们可以更加轻松的在 Kotlin 中使用 Mybaits-Flex 所带来的开发效率和开发体验。 @@ -35,29 +35,32 @@ https://github.com/KAMO030/MyBatis-Flex-Kotlin#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7 logImpl = StdOutImpl::class }.start() ``` - - 快速查询数据:通过DSL➕泛型快速编写查询语句并查询: (快速查询提供三个函数:all, filter 和 query ) >- `all()` 查泛型对应的表的所有数据 >- `filter(vararg columns: QueryColumn?, condition: ()->QueryCondition)` 按条件查泛型对应的表的数据 >- `query(queryScope: QueryScope.()->Unit)` 较复杂查泛型对应的表的数据 (如分组,排序等) - - 简明地构建条件:通过中缀表达式➕扩展方法能更加简单明了的构建条件: - * **【原生方式】** - ```kotlin - val queryWrapper = QueryWrapper.create() - .select(Account::id.column(), Account::userName.column()) - .where(Account::age.column().`in`(17, 18, 19)) - .orderBy(Account::id.column().desc()) - mapper().selectListByQuery(queryWrapper) - ``` - * **【扩展方式】** - ```kotlin - query { - select { listOf(Account::id, Account::userName) } - where { Account::age `in` (17..19) } orderBy -Account::id - } - ``` + * **【原生方式】** + ```kotlin + val queryWrapper = QueryWrapper.create() + .select(Account::id.column(), Account::userName.column()) + .where(Account::age.column().`in`(17, 18, 19)) + .orderBy(Account::id.column().desc()) + mapper().selectListByQuery(queryWrapper) + ``` + + * **【扩展方式】** + ```kotlin + query { + select(Account::id, Account::userName) + where { Account::age `in` (17..19) } orderBy -Account::id + } + ``` + > 执行的SQL: + ```sql + SELECT `id`, `user_name` FROM `tb_account` WHERE `age` IN (17, 18, 19) ORDER BY `id` DESC + ``` - 摆脱APT: 使用扩展方法摆脱对 APT(注解处理器) 的使用,直接使用属性引用让代码更加灵活优雅: > 使用APT: `ACCOUNT.ID eq 1` ,使用属性引用: `Account::id eq 1` > @@ -71,7 +74,6 @@ https://github.com/KAMO030/MyBatis-Flex-Kotlin#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7 ## 总结 引入 Mybatis-Flex-Kotlin 扩展模块在 Kotlin 中使用 Mybaits-Flex 能够基于 Kotlin 强大的语法特性可以让我们更加轻松方便地操作数据库,极大提高了开发效率和开发体验。 - > 如何引入 Mybatis-Flex-Kotlin 扩展模块在 Kotlin 中使用 : >* [gitee](https://gitee.com/mybatis-flex/mybatis-flex-kotlin) >* [github](https://github.com/KAMO030/MyBatis-Flex-Kotlin)