📜  android sqlite 选择查询 - Java (1)

📅  最后修改于: 2023-12-03 14:59:15.386000             🧑  作者: Mango

Android SQLite 选择查询 - Java

在 Android 应用程序中,SQLite 是一种轻量级的、基于文件的数据库,非常适合于存储和检索小型数据集。SQLite 提供了简单的 SQL 查询语言,可以方便地从数据表中检索数据。

本文将介绍如何在 Android 中使用 SQLite 进行选择查询操作。

第一步:准备工作

在使用 SQLite 之前,我们需要在 Android 项目中添加 SQLite 支持库。可以通过在 build.gradle 文件中添加以下行来完成此操作:

dependencies {
    implementation 'androidx.sqlite:sqlite:2.1.0'
}

除此之外,我们还需要创建一个数据表来存储我们的数据。可以使用以下代码创建一个名为 users 的表:

private static final String CREATE_USERS_TABLE =
        "CREATE TABLE users ("
        + "id INTEGER PRIMARY KEY,"
        + "name TEXT,"
        + "age INTEGER,"
        + "email TEXT "
        + ")";
第二步:查询数据

完成准备工作后,我们就可以开始编写选择查询了。

查询所有数据

要查询数据表中的所有数据,可以使用以下代码:

String selectQuery = "SELECT * FROM users";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);

if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
        String email = cursor.getString(cursor.getColumnIndex("email"));
        // 处理数据
    } while (cursor.moveToNext());
}

cursor.close();
db.close();

上述代码中,SELECT * 表示要检索所有列,FROM users 表示要从 users 表中检索数据。使用 getReadableDatabase() 方法获取一个只读的数据库对象,并使用 rawQuery() 方法执行原始 SQL 查询语句。查询结果将通过 Cursor 对象返回。

查询满足条件的数据

要查询表中满足某个特定条件的数据,可以在 SQL 查询语句中添加 WHERE 子句。例如,以下代码可用于查询年龄大于 18 岁的用户数据:

String selectQuery = "SELECT * FROM users WHERE age > 18";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);

if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
        String email = cursor.getString(cursor.getColumnIndex("email"));
        // 处理数据
    } while (cursor.moveToNext());
}

cursor.close();
db.close();

上述代码中,WHERE 子句用于指定满足的条件,age > 18 表示用户年龄大于 18 岁。查询结果也将通过 Cursor 对象返回。

第三步:处理数据

在查询数据后,我们可以使用 Cursor 对象的方法获取每一行数据。例如,getInt()getString() 等方法可用于获取列值,moveToNext() 方法可用于将光标移动到下一行。

以下是示例处理数据的代码:

if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
        String email = cursor.getString(cursor.getColumnIndex("email"));
        // 处理数据
    } while (cursor.moveToNext());
}
总结

使用 Android SQLite 进行选择查询操作非常简单。只需编写正确的 SQL 查询语句,获取 Cursor 对象并使用其方法处理数据即可。通过 SQLite 支持库,我们可以轻松地轻松地在 Android 应用中使用 SQLite 进行 CRUD 操作。