安卓数据库操作指南

雨后彩虹 2023-11-15 ⋅ 16 阅读

在安卓开发中,数据库操作是非常常见的需求。本篇博客将向您介绍安卓数据库操作的基本知识和常用操作,帮助您更好地进行数据库操作。

一、数据库介绍

数据库是用于存储和管理数据的系统,它以表格的形式组织和存储数据。在安卓开发中,我们常用的数据库系统有SQLite和Room。

1. SQLite

SQLite是一种自包含、无服务器的、无配置和零配置的事务性SQL数据库引擎。在安卓开发中,SQLite作为默认的嵌入式数据库,用于存储和管理应用程序的数据。

2. Room

Room是一种SQLite数据库的抽象层,提供了更加便捷的数据库操作方式。它通过使用注解来定义实体类和数据库表之间的映射关系,并提供了便捷的查询和更新数据库的方法。

二、数据库操作

1. 创建数据库

在安卓开发中,我们可以通过继承SQLiteOpenHelper类来创建和管理数据库。在创建数据库时,我们需要指定数据库的名称、版本号、表格结构等信息。

class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
    // 创建表格
    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(CREATE_TABLE_QUERY)
    }

    // 更新数据库
    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL(DELETE_TABLE_QUERY)
        onCreate(db)
    }

    companion object {
        private const val DATABASE_NAME = "my_database"
        private const val DATABASE_VERSION = 1

        private const val CREATE_TABLE_QUERY = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL)"
        private const val DELETE_TABLE_QUERY = "DROP TABLE IF EXISTS users"
    }
}

2. 插入数据

在安卓开发中,我们可以使用ContentValues类来插入数据到数据库中。

val values = ContentValues().apply {
    put("name", "John")
    put("age", 25)
}

val id = writableDatabase.insert("users", null, values)

3. 查询数据

我们可以使用query方法来查询数据库中的数据。

val columns = arrayOf("id", "name", "age")
val selection = "age > ?"
val selectionArgs = arrayOf("20")
val sortOrder = "age ASC"

val cursor = readableDatabase.query(
    "users", columns, selection, selectionArgs, null, null, sortOrder
)

while (cursor.moveToNext()) {
    val id = cursor.getLong(cursor.getColumnIndexOrThrow("id"))
    val name = cursor.getString(cursor.getColumnIndexOrThrow("name"))
    val age = cursor.getInt(cursor.getColumnIndexOrThrow("age"))

    Log.d("TAG", "id: $id, name: $name, age: $age")
}

cursor.close()

4. 更新数据

使用update方法可以更新数据库中的数据。

val values = ContentValues().apply {
    put("name", "Alice")
    put("age", 30)
}

val selection = "id = ?"
val selectionArgs = arrayOf("1")

writableDatabase.update("users", values, selection, selectionArgs)

5. 删除数据

使用delete方法可以删除数据库中的数据。

val selection = "age < ?"
val selectionArgs = arrayOf("18")

writableDatabase.delete("users", selection, selectionArgs)

三、总结

本篇博客介绍了安卓数据库操作的基本知识和常用操作,包括创建数据库、插入数据、查询数据、更新数据和删除数据。希望通过本篇博客的介绍,能够帮助您更好地进行数据库操作。如果您有任何问题或疑惑,欢迎留言交流。


全部评论: 0

    我有话说: