mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-06 16:48:24 +08:00
3.5 KiB
3.5 KiB
基于 Kotlin 扩展 Mybatis-Flex
快速开始
在开始之前,我们假定您已经:
- 熟悉 Kotlin 环境配置及其开发
- 熟悉 关系型 数据库,比如 MySQL
- 熟悉 Kotlin 构建工具,比如 Gradle、Maven
当前章节涉及到的 演示源码 已经全部上传
在开始之前,您也可以先下载到本地,导入到 idea 开发工具后,在继续看文档。
特点
- 本模块基于 Mybatis-Flex 核心库 ,只做扩展不做改变
- 结合 Kotlin 特性、DSL让数据库操作更简单
Hello World 文档
第 1 步:创建 Kotlin 项目,并添加 Kotlin 的扩展依赖
如何创建 Kotlin 项目可参考 官方文档
需要添加的主要依赖:
【Kotlin】
dependencies {
implementation("com.mybatis-flex:mybatis-flex-kotlin:1.5.7")
compileOnly("com.mybatis-flex:mybatis-flex-processor:1.5.7")
}
【Maven】
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-kotlin</artifactId>
<version>${mybatis-flex.version}</version>
</dependency>
第 2 步:创建数据库表与配置数据源
请参考 快速开始 创建数据库表与配置数据源, 或者使用演示源码中的内嵌数据库快速体验
第 3 步:编写实体类
@Table("tb_account")
class Account {
@Id
var id: Long
var userName: String
var age: Integer
var birthday: Date
}
- 使用
@Table("tb_account")设置实体类与表名的映射关系 - 使用
@Id标识主键
第 4 步:开始使用
添加测试类,进行功能测试:
fun main() {
//加载数据源(为了方便演示这里使用了演示源码中的内嵌数据源)
val dataSource: DataSource = EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScript("schema.sql")
.addScript("data-kt.sql")
.build()
//启动并配入数据源
buildBootstrap { +dataSource }.start()
//条件过滤查询并打印
filter<Account> {
ACCOUNT.ID `=` 1 and
(ACCOUNT.AGE `in` listOf(18,19) or (ACCOUNT.BIRTHDAY between ("2020-01-10" to "2020-01-12")) )
}.forEach(::println)
//查询全部数据并打印
//ACCOUNT.all<Account>().forEach(::println)
}
执行的SQL:
SELECT * FROM `tb_account` WHERE`id` = 1 AND (`age` IN (18, 19) OR `birthday`BETWEEN '2020-01-10' AND '2020-01-12' )
控制台输出:
Account(id=1, userName=张三, age=18, birthday=Sat Jan 11 00:00:00 CST 2020)
以上的示例中,
ACCOUNT为 MyBatis-Flex 通过 APT 自动生成,只需通过静态导入即可,无需手动编码。更多查看 在Kotlin中使用注解处理器若觉得 APT 使用不习惯,也可以使用代码生成器来生成。点击 代码生成器文档 了解。