SuperAPI AI 工具集

sqldelight-patterns

数据与分析

查看项目

更新于 10-15 19:52

技能介绍

用途:为 Kotlin Multiplatform(KMP)项目提供 SQLDelight 的实践模式,帮助在共享模块中定义数据库结构、查询与跨平台访问。

主要能力:通过 Gradle 插件 app.cash.sqldelight 2.0.2 配置数据库(packageName、schemaOutputDirectory、verifyMigrations);在 src/commonMain/sqldelight 下用 .sq 文件声明表、索引与命名查询(selectAll、selectById、insert、update、delete、countByStatus 等),支持参数化查询与 JOIN;用 expect/actual 的 DriverFactory 在 Android 使用 AndroidSqliteDriver、iOS 使用 NativeSqliteDriver;用 ColumnAdapter 实现枚举与 kotlinx.datetime Instant 的类型适配;用 .sqm 文件做迁移并在 Gradle 中开启 verifyMigrations;通过 coroutines-extensions 的 asFlow、mapToList、mapToOne、mapToOneOrNull 暴露响应式数据;用 database.transaction 执行原子多语句操作;测试时使用 JdbcSqliteDriver.IN_MEMORY 并调用 AppDatabase.Schema.create(driver)。

使用方式:在共享模块应用插件并声明 databases.create("AppDatabase"),添加 coroutines-extensions、primitive-adapters 及 android-driver、native-driver 依赖;.sq 文件按表命名放置于 commonMain/sqldelight 对应包路径;迁移文件放在 databases/migrations 下,命名如 1.sqm、2.sqm;类型适配器放在 commonMain 以便跨平台共享。

适用场景:KMP 移动应用需要共享 SQLite 数据层、类型安全查询、响应式 UI 数据流与可验证的数据库迁移时。

限制:资料未提供具体版本兼容范围、性能数据、收费信息或官方支持渠道;示例基于 SQLDelight 2.0.2,其他版本行为暂未提供。