📅  最后修改于: 2023-12-03 15:02:32.366000             🧑  作者: Mango
在 Android 应用程序中,SQLite 是一种流行的关系型数据库系统,允许应用程序在本地存储应用程序数据。Kotlin 作为一种适用于 Android 开发的现代编程语言,与 SQLite 数据库的集成也得到了良好的支持。在本文中,我们将了解 Kotlin 中如何使用 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 类。示例代码演示了如何插入、查询、更新和删除数据。