SQLDelight 使用教程

SQLDelight 使用教程

sqldelight项目地址:https://gitcode.com/gh_mirrors/sql/sqldelight

1. 项目目录结构及介绍

在SQLDelight项目中,常见的目录结构可能如下所示:

PROJECT_ROOT/
├── android/app/src/main/java                # Android应用代码
│   └── com/example/yourapp                      # 应用包名
│       ├── database                              # 包含数据库相关代码
│       │   ├── HockeyPlayer.sqlDelight           # SQL语句定义文件
│       │   └── Database.kt                       # 数据库接口实现
├── commonMain/kotlin                           # 共享代码(多平台)
│   └── com/example/yourapp/database             # 数据库相关代码
│       └── HockeyPlayer.sqlDelight               # SQL语句定义文件
├── iosMain/kotlin                               # iOS平台代码
├── jvmMain/kotlin                               # JVM平台代码
├── jsMain/kotlin                                # JavaScript平台代码
└── build.gradle.kts                             # 根级构建脚本
  • android/app/src/main/java: Android应用程序代码,包括SQLDelight生成的类型安全的API。
  • commonMain/kotlin: 共享代码,适用于多个平台,包含SQL语句定义。
  • iosMain/kotlin, jvmMain/kotlin, jsMain/kotlin: 各自平台的特定代码。
  • HockeyPlayer.sqlDelight: SQL语句定义文件,用于描述数据库表结构和操作。
  • Database.kt: 数据库接口实现,通常包含由SQLDelight自动生成的类型。

2. 项目的启动文件介绍

在Android项目中,启动文件通常是MainActivity.kt,而在其他平台上,可能是一个特定的应用程序入口类。这些文件是实际运行时与数据库交互的地方。例如,在MainActivity.kt中,你可以看到类似以下的代码来初始化数据库并执行查询:

class MainActivity : AppCompatActivity() {
    private lateinit var database: Database

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val configuration = SQLiteConfiguration(context = this)
        database = Database(configuration)

        val hockeyPlayers = database.hockeyPlayer.select().executeAsList()
        // 在这里处理获取到的hockeyPlayers数据
    }
}

在非Android的平台,如Kotlin/JVM或Kotlin/Native,你可能会在主函数中创建数据库实例并执行查询。

3. 项目的配置文件介绍

build.gradle.kts (根级构建脚本)

在根级构建脚本中,你需要添加SQLDelight插件,并指定依赖:

buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
    }
    dependencies {
        classpath("com.squareup.sqldelight:gradle-plugin:{{sqldelight_plugin_version}}")
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") } // If using snapshots
    }
}

apply {
    plugin("com.squareup.sqldelight")
}

sqldelight {
    // 对应于Android数据库实例
    myDatabase {
        packageName = "com.example.yourapp.database"
    }
}

app/build.gradle.kts (模块级构建脚本)

在Android应用模块的构建脚本中,确保配置了应用的编译环境:

plugins {
    id("com.android.application")
    id("app.cash.sqldelight")
}

android {
    // ...常规Android配置...
}

dependencies {
    implementation("com.squareup.sqldelight:android-driver:{{sql_delight_driver_version}}")
    // 其他依赖...
}

对于其他平台,例如Kotlin/JVM,你需要修改对应的驱动依赖,例如:

dependencies {
    implementation("com.squareup.sqldelight:jdbc-driver:{{sql_delight_driver_version}}")
}

请注意将{{sqldelight_plugin_version}}{{sql_delight_driver_version}}替换为最新的SQLDelight版本号。

以上是使用SQLDelight的基本配置。根据你的具体需求,你可能还需要在其他地方进行调整,例如添加特定平台的配置、启用额外的扩展库等。记得查看SQLDelight官方文档以获取更详细的指导和示例。

sqldelight项目地址:https://gitcode.com/gh_mirrors/sql/sqldelight

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌宣广

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值