# MyBatis-Flex-Kotlin **Repository Path**: xiaomaoguai/mybatis-flex-kotlin ## Basic Information - **Project Name**: MyBatis-Flex-Kotlin - **Description**: MyBatis-Flex 的 Kotlin 扩展。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-08-18 - **Last Updated**: 2023-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 Kotlin 扩展 Mybatis-Flex ## 特点 - 本模块基于 [Mybatis-Flex](https://mybatis-flex.com) 核心库 ,只做扩展不做改变 - 结合 Kotlin 特性、DSL让数据库操作更简单 ## 快速开始 在开始之前,我们假定您已经: - 熟悉 Kotlin 环境配置及其开发 - 熟悉 关系型 数据库,比如 MySQL - 熟悉 Kotlin 构建工具,比如 Gradle、Maven > 本文档涉及到的 [演示源码](https://gitee.com/mybatis-flex/mybatis-flex-kotlin/tree/main/src/test/kotlin/com/mybatisflex/kotlin/test) 已经全部上传 > 在开始之前,您也可以先下载到本地,导入到 idea 开发工具后,再继续看文档。 > > 在 [Mybatis-Flex源项目](https://mybatis-flex.com) 中所介绍的功能本文档不再过多赘述建议,本文档只对 Mybatis-Flex 在 Kotlin 中特有的用法进行介绍 ### Hello World 文档 **第 1 步:创建 Kotlin 项目,并添加 Kotlin 的扩展依赖** >如何创建 Kotlin 项目可参考 [Kotlin官方文档](https://www.kotlincn.net/docs/tutorials/jvm-get-started.html) 需要添加的主要依赖: **【Kotlin】** ```kotlin dependencies { implementation("com.mybatis-flex:mybatis-flex-kotlin:$version") } ``` **【Maven】** ```xml com.mybatis-flex mybatis-flex-kotlin ${mybatis-flex-kotlin.version} ``` **第 2 步:创建数据库表与配置数据源** > 请参考 [源项目快速开始](https://mybatis-flex.com/zh/intro/getting-started.html) 创建数据库表与配置数据源, > 或者使用演示源码中的内嵌数据库快速体验 **第 3 步:编写实体类** ```kotlin @Table("tb_account") class Account { @Id var id: Long var userName: String var age: Integer var birthday: Date } ``` - 使用 `@Table("tb_account")` 设置实体类与表名的映射关系 - 使用 `@Id` 标识主键 **第 4 步:开始使用** 添加测试类,进行功能测试: ```kotlin fun main() { //加载数据源(为了方便演示这里使用了演示源码中的内嵌数据源) val dataSource: DataSource = EmbeddedDatabaseBuilder().run { setType(EmbeddedDatabaseType.H2) addScript("schema.sql") addScript("data-kt.sql") build() } //启动并配入数据源 buildBootstrap { +dataSource }.start() //条件过滤查询并打印 filter { ACCOUNT.ID `=` 1 and (ACCOUNT.AGE `in` (17..19) or (ACCOUNT.BIRTHDAY between ("2020-01-10" to "2020-01-12"))) }.forEach(::println) //查询全部数据并打印 //ACCOUNT.all().forEach(::println) } ``` 执行的SQL: ```sql SELECT * FROM `tb_account` WHERE `id` = 1 AND (`age` IN (17, 18, 19) OR `birthday` BETWEEN '2020-01-10' AND '2020-01-12' ) ``` 控制台输出: ```txt Account(id=1, userName=张三, age=18, birthday=Sat Jan 11 00:00:00 CST 2020) ``` > 以上的示例中, `ACCOUNT` 为 MyBatis-Flex 通过 APT > 自动生成,只需通过静态导入即可,无需手动编码。更多查看 [在Kotlin中使用注解处理器](https://mybatis-flex.com/zh/others/kapt.html) > > 若觉得 APT 使用不习惯,也可以使用代码生成器来生成。点击 [代码生成器文档](https://mybatis-flex.com/zh/others/codegen.html) 了解。 [comment]: <> (## 更多使用) [comment]: <> (- 功能 1:[Bootstrap简化配置]()) [comment]: <> (- 功能 2:[简单查询]()) [comment]: <> (- 功能 3:[表实体扩展]()) [comment]: <> (- 功能 4:[SQL扩展/中缀]()) [comment]: <> (- 功能 5:[Mapper扩展]()) [comment]: <> (###### TODO ...)