Kotlin Android SQLite 教程

2025年3月17日 | 阅读 7 分钟

SQLite 是一个开源关系数据库,用于在 Android 设备上执行数据库操作,例如存储、操作或从数据库检索持久性数据。

默认情况下,SQLite 数据库嵌入在 Android 中。 因此,无需执行任何数据库设置或管理任务。

SQLiteOpenHelper 类提供了使用 SQLite 数据库的功能。

SQLiteOpenHelper 类

android.database.sqlite.SQLiteOpenHelper 类用于数据库创建和版本管理。 为了执行任何数据库操作,您必须提供 SQLiteOpenHelper 类的 onCreate()onUpgrade() 方法的实现。

SQLiteOpenHelper 类的构造函数

SQLiteOpenHelper 类有两个构造函数。

构造函数描述
SQLiteOpenHelper(context: Context, name: String, factory: SQLiteDatabase.CursorFactory, version: Int)创建一个 SQLiteOpenHelper 对象,用于创建、打开和管理数据库。
SQLiteOpenHelper(context: Context, name: String, factory: SQLiteDatabase.CursorFactory, version: Int, errorHandler: DatabaseErrorHandler)创建一个 SQLiteOpenHelper 对象,用于创建、打开和管理数据库。 它指定错误处理程序。

SQLiteOpenHelper 类的方法

SQLiteOpenHelper 类中提供了几种方法。 其中一些如下所述

方法描述
public abstract void onCreate(SQLiteDatabase db)仅在首次创建数据库时调用一次。
public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)当数据库需要升级时调用。
public synchronized void close ()关闭数据库对象。
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)当数据库需要降级时调用。

SQLiteDatabase 类

它包含要在 SQLite 数据库上执行的方法,例如创建、更新、删除、选择等。

SQLiteDatabase 类的方法

SQLiteDatabase 类中有很多方法。 其中一些如下

方法描述
execSQL(String sql): Unit执行 SQL 查询,而不是选择查询。
insert(String table, String nullColumnHack, ContentValues values): Long在数据库中插入一条记录。 table 指定表名,nullColumnHack 不允许完全为空的值。 如果第二个参数为空,则如果值为空,android 将存储空值。 第三个参数指定要存储的值。
update(String table, ContentValues values, String whereClause, String[] whereArgs): Int更新一行。
query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy): Cursor返回结果集的游标。

Kotlin Android SQLite 数据库 CRUD 示例

在本示例中,我们将对 Android SQLite 数据库执行创建、读取、更新和删除操作。

activity_main.xml

activity_main.xml 文件中添加以下代码。 在此文件中,我们添加了三个 EditText、一个 ListView、四个 Button,分别用于保存、查看、更新和删除操作。

MainActivity.kt

MainActivity.kt 类中添加以下代码。 在这个类中,saveRecord() 函数保存记录。 viewRecord() 函数读取记录并将它们显示到 ListView 中,updateRecord() 函数根据 id 更新记录,deleteRecord() 函数删除记录。 val databaseHandler: DatabaseHandler= DatabaseHandler(this) 创建 DatabaseHandler 类的实例,调用 SQLite 数据库逻辑。

EmpModelClass.kt

创建一个名为 EmpModelClass.kt 的数据模型类

custom_list.xml

创建一个自定义行布局,用于在 ListView 中显示列表项。

MyListAdapter.kt

现在,创建一个名为 MyListAdapter.kt 的自定义适配器类,并扩展 ArrayAdapter 类,该类将数据模型填充到 ListView 中。

update_dialog.xml

创建一个布局以显示用于更新记录的 AlertDialog。

delete_dialog.xml

创建一个布局以显示用于删除记录的 AlertDialog。

DatabaseHandler.kt

创建扩展 SQLiteOpenHelper 类的 DatabaseHandler.kt 类,并覆盖其 onCreate(), onUpgrage() 函数。 通过将 ContentValues 对象传递给 insert() 方法,将数据插入到数据库中。

输出

Kotlin Android SQLite Tutorial Kotlin Android SQLite Tutorial
Kotlin Android SQLite Tutorial Kotlin Android SQLite Tutorial
Kotlin Android SQLite Tutorial Kotlin Android SQLite Tutorial
Kotlin Android SQLite Tutorial Kotlin Android SQLite Tutorial
Kotlin Android SQLite Tutorial
下一主题#