From 622d078ff74f3d593e46c8cf028c5e2fd5e9acbb Mon Sep 17 00:00:00 2001 From: kamosama <837080904@qq.com> Date: Fri, 8 Sep 2023 11:26:30 +0800 Subject: [PATCH] =?UTF-8?q?docs:=E6=9B=B4=E6=AD=A3=20Mybatis-Flex-Kotlin?= =?UTF-8?q?=20=E6=96=87=E6=A1=A3=E6=96=87=E6=9C=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/intro/use-in-kotlin.md | 47 ++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/docs/zh/intro/use-in-kotlin.md b/docs/zh/intro/use-in-kotlin.md index 9a4b1530..d149ea59 100644 --- a/docs/zh/intro/use-in-kotlin.md +++ b/docs/zh/intro/use-in-kotlin.md @@ -24,30 +24,39 @@ }.start() ``` - 快速查询数据:通过DSL➕泛型快速编写查询语句并查询: (快速查询提供三个函数:all, filter 和 query ) - - `all()` 查泛型对应的表的所有数据 - - `filter(vararg columns: QueryColumn?, condition: ()->QueryCondition)` 按条件查泛型对应的表的数据 - - `query(queryScope: QueryScope.()->Unit)` 较复杂查泛型对应的表的数据,如分组排序等 + >- `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 { listOf(Account::id, Account::userName) } + where { Account::age `in` (17..19) } orderBy -Account::id + } + ``` + - 摆脱APT: 使用扩展方法摆脱对 APT(注解处理器) 的使用,直接使用属性引用让代码更加灵活优雅: > 使用APT: `ACCOUNT.ID eq 1` ,使用属性引用: `Account::id eq 1` + > > (少依赖一个模块且不用开启注解处理器功能) - 属性类型约束:使用泛型➕扩展方法对操作的属性进行类型约束: - > 如: Account 中 age 属性为 Int 类型,那么 `Account::age between (17 to 19)`而 `Account::age between ("17" to "19")`则会报错提醒 + > 如: Account 中 age 属性为 Int 类型 + > + > 那么使用between时后续参数也必须是Int: `Account::age between (17 to 19)` + > + > 而如果写成String:`Account::age between ("17" to "19")`则会报错提醒 + ## 总结 引入 Mybatis-Flex-Kotlin 扩展模块在 Kotlin 中使用 Mybaits-Flex 能够基于 Kotlin 强大的语法特性可以让我们更加轻松方便地操作数据库,极大提高了开发效率和开发体验。 > 如何引入 Mybatis-Flex-Kotlin 扩展模块在 Kotlin 中使用 :