用途
该技能面向使用 JetBrains Exposed ORM 进行数据库访问的 Kotlin 项目,提供一套可复用的模式与配置示例,帮助开发者以一致的方式组织数据层代码。
主要能力
- DSL 查询:提供直接类似 SQL 表达式的查询风格,覆盖基础 CRUD、条件查询、排序、连接查询、聚合、子查询、LIKE 模式匹配、分页以及批量操作(批量插入、upsert)。
- DAO 模式:提供实体生命周期管理方式,包括实体定义、关联关系(referrersOn、referencedOn)以及 DAO 操作(查找、创建、更新)。
- 事务处理:使用 newSuspendedTransaction 块保证协程安全与原子性,支持嵌套事务、事务隔离级别设置(READ_COMMITTED、SERIALIZABLE)。
- HikariCP 连接池:通过 HikariConfig 配置驱动、JDBC URL、用户名、密码、最大连接数、自动提交与事务隔离级别,并封装为 DatabaseFactory。
- Flyway 迁移:在应用启动时运行版本化 SQL 迁移脚本,保持数据库 schema 同步,支持 baselineOnMigrate。
- 仓储模式:将 Exposed 查询封装在接口之后,使业务逻辑与数据层解耦,便于测试时使用内存 H2 数据库。
- 表定义:提供 DSL 风格表定义、复合表定义,支持 UUIDTable、枚举列、JSONB 列、时间戳默认表达式、外键引用与级联删除。
使用方式
资料中给出的示例包括:通过 DatabaseFactory.create 创建数据库连接;在 Application.module 中读取配置、运行迁移并初始化数据库;使用 newSuspendedTransaction 包裹数据库操作;定义 UserRepository 接口并由 ExposedUserRepository 实现;编写 Flyway 迁移文件(如 V1__create_users.sql)。具体安装命令与依赖配置资料中暂未提供。
适用场景
- 使用 Exposed 搭建数据库访问层
- 编写 DSL 或 DAO 风格的 SQL 查询
- 配置 HikariCP 连接池
- 使用 Flyway 创建数据库迁移
- 实现仓储模式
- 处理 JSON 列与复杂查询
限制
资料中未提供该技能的收费、价格、平台支持范围、性能效果或具体安装步骤等信息,这些内容暂未提供。