📜  Kotlin 中的 Android SQLite 数据库(1)

📅  最后修改于: 2023-12-03 15:02:32.366000             🧑  作者: Mango

Kotlin 中的 Android SQLite 数据库

在 Android 应用程序中,SQLite 是一种流行的关系型数据库系统,允许应用程序在本地存储应用程序数据。Kotlin 作为一种适用于 Android 开发的现代编程语言,与 SQLite 数据库的集成也得到了良好的支持。在本文中,我们将了解 Kotlin 中如何使用 SQLite 数据库。

安装 SQLite

SQLite 是 Android 的默认数据库。不需要安装任何东西,因为它作为框架自带。只需要导入 android.database.sqlite 包即可使用。

import android.database.sqlite.SQLiteDatabase
创建数据库

使用 SQLite 数据库之前,我们需要创建一个数据库。在 Android 中,SQLiteOpenHelper 类提供了简单的 API,允许我们在应用程序中创建和管理 SQLite 数据库。

class DBHelper(context: Context) :
    SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {

    ...
}

我们需要继承 SQLiteOpenHelper,并自己实现 onCreate() 和 onUpdate() 方法。这些方法将在创建和更新数据库时调用。在 onCreate() 方法中,我们可以创建数据库表。

override fun onCreate(db: SQLiteDatabase) {
    db.execSQL(
        "CREATE TABLE $TABLE_NAME ( " +
            "$COL_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
            "$COL_NAME TEXT, " +
            "$COL_AGE INTEGER, " +
            "$COL_EMAIL TEXT UNIQUE )"
    )
}
插入数据

向 SQLite 数据库表中插入数据的示例:

val db = writableDatabase
val values = ContentValues().apply {
    put(COL_NAME, "John")
    put(COL_AGE, 25)
    put(COL_EMAIL, "john@example.com")
}

val result = db.insert(TABLE_NAME, null, values)

if (result == -1L) {
    Toast.makeText(context, "Failed to insert data", Toast.LENGTH_SHORT).show()
} else {
    Toast.makeText(context, "Data inserted successfully", Toast.LENGTH_SHORT).show()
}
查询数据

使用 SQLite 数据库查询数据的示例:

val db = readableDatabase
val projection = arrayOf(COL_ID, COL_NAME, COL_AGE, COL_EMAIL)
val sortOrder = "$COL_NAME ASC"

val cursor = db.query(
    TABLE_NAME,
    projection,
    null,
    null,
    null,
    null,
    sortOrder
)

val dataList = mutableListOf<String>()

with(cursor) {
    while (moveToNext()) {
        val id = getInt(getColumnIndexOrThrow(COL_ID))
        val name = getString(getColumnIndexOrThrow(COL_NAME))
        val age = getInt(getColumnIndexOrThrow(COL_AGE))
        val email = getString(getColumnIndexOrThrow(COL_EMAIL))
        dataList.add("$id - $name - $age - $email")
    }
}

cursor.close()
更新数据

使用 SQLite 数据库更新数据的示例:

val db = writableDatabase
val values = ContentValues().apply {
    put(COL_AGE, 30)
}

val selection = "$COL_NAME LIKE ?"
val selectionArgs = arrayOf("John")

val count = db.update(
    TABLE_NAME,
    values,
    selection,
    selectionArgs
)

if (count == 0) {
    Toast.makeText(context, "Failed to update data", Toast.LENGTH_SHORT).show()
} else {
    Toast.makeText(context, "Data updated successfully", Toast.LENGTH_SHORT).show()
}
删除数据

使用 SQLite 数据库删除数据的示例:

val db = writableDatabase

val selection = "$COL_NAME LIKE ?"
val selectionArgs = arrayOf("John")

val count = db.delete(TABLE_NAME, selection, selectionArgs)

if (count == 0) {
    Toast.makeText(context, "Failed to delete data", Toast.LENGTH_SHORT).show()
} else {
    Toast.makeText(context, "Data deleted successfully", Toast.LENGTH_SHORT).show()
}
总结

本文介绍了 Kotlin 中如何使用 SQLite 数据库。SQLite 是一种流行的关系型数据库系统,允许应用程序在本地存储应用程序数据。在应用程序中创建和管理 SQLite 数据库需要使用 SQLiteOpenHelper 类。示例代码演示了如何插入、查询、更新和删除数据。