用途:为 Kotlin 项目提供 JetBrains Exposed ORM 的数据库访问模式,覆盖从建表、查询到生产配置的常见做法。
主要能力:Exposed 提供 DSL(类 SQL 表达式)与 DAO(实体生命周期管理)两种查询风格;HikariCP 通过 HikariConfig 管理可复用连接池;Flyway 在启动时执行带版本号的 SQL 迁移脚本以同步表结构;所有数据库操作放在 newSuspendedTransaction 块中以保证协程安全与原子性;仓储模式将 Exposed 查询封装在接口后,使业务逻辑与数据层解耦,测试可用内存 H2 数据库。
使用方式:用 Database.connect(HikariDataSource(hikariConfig)) 建立连接;用 Flyway.configure().dataSource(...).locations("classpath:db/migration").baselineOnMigrate(true).load().migrate() 运行迁移;表定义可用 UUIDTable、jsonb、enumerationByName、references 等;查询支持 insertAndGetId、selectAll().where、update、deleteWhere、innerJoin、聚合、子查询、分页、batchInsert、upsert;DAO 用 UUIDEntity/UUIDEntityClass 与 new、findById、find;事务可指定 transactionIsolation。
适用场景:需要为 Kotlin 服务搭建数据库访问层、编写 DSL 或 DAO 查询、配置连接池与迁移、实现仓储模式、处理 JSON 列与复杂查询时。
限制:资料未提供具体版本要求、依赖坐标、性能数据、收费信息或平台支持范围;LIKE 查询需自行转义用户输入以防通配符注入。