docs:修改kt文档git链接顺序与完善文档内容

This commit is contained in:
kamosama 2023-09-24 18:18:42 +08:00
parent 71846bad1c
commit 9f1061d6ac

View File

@ -6,10 +6,8 @@
>它继承了 Mybatis-Flex 轻量的特性,同时拥有 Kotlin 特有的扩展方法、中缀表达式与DSL等语法支持 >它继承了 Mybatis-Flex 轻量的特性,同时拥有 Kotlin 特有的扩展方法、中缀表达式与DSL等语法支持
>使其拥有了更高的灵活性。让我们可以更加轻松的在 Kotlin 中使用 Mybaits-Flex 所带来的开发效率和开发体验。 >使其拥有了更高的灵活性。让我们可以更加轻松的在 Kotlin 中使用 Mybaits-Flex 所带来的开发效率和开发体验。
* [Gitee](https://gitee.com/mybatis-flex/mybatis-flex-kotlin)
* [Github](https://github.com/KAMO030/MyBatis-Flex-Kotlin)
Git 地址https://github.com/KAMO030/MyBatis-Flex-Kotlin
## 特征 ## 特征
@ -17,11 +15,6 @@ Git 地址https://github.com/KAMO030/MyBatis-Flex-Kotlin
- 简明:使用 DSL 让查询语句更加简单明了 - 简明:使用 DSL 让查询语句更加简单明了
- 快捷:结合 Kotlin 特性快速对数据库进行操作 - 快捷:结合 Kotlin 特性快速对数据库进行操作
## 快速开始
点击链接进入详情:
https://github.com/KAMO030/MyBatis-Flex-Kotlin#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
## 亮点 ## 亮点
- 快速构建启动通过DSL重载运算符快速配置 MybatisFlexBootstrap 实例并启动: - 快速构建启动通过DSL重载运算符快速配置 MybatisFlexBootstrap 实例并启动:
@ -36,31 +29,58 @@ https://github.com/KAMO030/MyBatis-Flex-Kotlin#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7
}.start() }.start()
``` ```
- 快速查询数据通过DSL泛型快速编写查询语句并查询: (快速查询提供三个函数all, filter 和 query ) - 快速查询数据通过DSL泛型快速编写查询语句并查询: (快速查询提供三个函数all, filter 和 query )
>- `all<Account>()` 查泛型对应的表的所有数据 >- `all<实体类>()` 查泛型对应的表的所有数据
>- `filter<Account>(vararg columns: QueryColumn?, condition: ()->QueryCondition)` 按条件查泛型对应的表的数据 >- `filter<实体类>(vararg KProperty<*>, ()->QueryCondition)` 按条件查泛型对应的表的数据
>- `query<Account>(queryScope: QueryScope.()->Unit)` 较复杂查泛型对应的表的数据 (如分组,排序等) >- `query<实体类>(QueryScope.()->Unit)` 较复杂查泛型对应的表的数据 (如: 分组,排序等)
- 简明地构建条件:通过中缀表达式➕扩展方法能更加简单明了的构建条件:
* **【原生方式】** - 简明地构建查询:通过中缀表达式➕扩展方法能更加简单明了的构建条件:
```kotlin * **【对比原生】**
val queryWrapper = QueryWrapper.create() * **原生**
.select(Account::id.column(), Account::userName.column()) ```kotlin
.where(Account::age.column().`in`(17, 18, 19)) val queryWrapper = QueryWrapper.create()
.orderBy(Account::id.column().desc()) .select(Account::id.column(), Account::userName.column())
mapper<AccountMapper>().selectListByQuery(queryWrapper) .where(Account::age.column().isNotNull()).and(Account::age.column().ge(17))
``` .orderBy(Account::id.column().desc())
mapper<AccountMapper>().selectListByQuery(queryWrapper)
```
* **【扩展方式】** * **扩展后**
```kotlin ```kotlin
query<Account> { query<Account> {
select(Account::id, Account::userName) select(Account::id, Account::userName)
where { Account::age `in` (17..19) } orderBy -Account::id where(Account::age.isNotNull) and { Account::age ge 17 } orderBy -Account::id
} }
``` ```
> 执行的SQL: 执行的SQL:
```sql ```sql
SELECT `id`, `user_name` FROM `tb_account` WHERE `age` IN (17, 18, 19) ORDER BY `id` DESC SELECT `id`, `user_name` FROM `tb_account` WHERE `age` IS NOT NULL AND `age` >= 17 ORDER BY `id` DESC
``` ```
* **【条件优化】**
- 例如: 查询属性是否在一个连续的区间时,会自动将 IN 转为 BETWEEN 调用
```kotlin
filter<Account> { Account::age `in` (17..19) }
```
执行的SQL:
```sql
SELECT * FROM `tb_account` WHERE `age` BETWEEN 17 AND 19
```
- 例如: 构建多属性组合 IN (最多支持三个属性)
```kotlin
filter<Account> {
(Account::id to Account::userName to Account::age).inTriple(
1 to "张三" to 18,
2 to "李四" to 19,
)
}
```
执行的SQL:
```sql
SELECT * FROM `tb_account`
WHERE (`id` = 1 AND `user_name` = '张三' AND `age` = 18)
OR (`id` = 2 AND `user_name` = '李四' AND `age` = 19)
```
- 摆脱APT: 使用扩展方法摆脱对 APT(注解处理器) 的使用,直接使用属性引用让代码更加灵活优雅: - 摆脱APT: 使用扩展方法摆脱对 APT(注解处理器) 的使用,直接使用属性引用让代码更加灵活优雅:
> 使用APT: `ACCOUNT.ID eq 1` ,使用属性引用: `Account::id eq 1` > 使用APT: `ACCOUNT.ID eq 1` ,使用属性引用: `Account::id eq 1`
> >
@ -74,6 +94,9 @@ 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 中使用 Mybaits-Flex 能够基于 Kotlin 强大的语法特性可以让我们更加轻松方便地操作数据库,极大提高了开发效率和开发体验。
> 如何引入 Mybatis-Flex-Kotlin 扩展模块在 Kotlin 中使用 :
>* [gitee](https://gitee.com/mybatis-flex/mybatis-flex-kotlin) ## 快速开始
>* [github](https://github.com/KAMO030/MyBatis-Flex-Kotlin)
点击链接进入详情:
- https://github.com/KAMO030/MyBatis-Flex-Kotlin#快速开始
- https://gitee.com/mybatis-flex/mybatis-flex-kotlin#快速开始