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