Android使用SQLite数据库保存数据

作为一名经验丰富的开发者,我将教会你如何在Android应用程序中使用SQLite数据库保存数据。下面是整个流程的步骤:

步骤 说明
1 创建数据库帮助类
2 定义数据模型类
3 创建数据库表
4 插入数据
5 查询数据
6 更新数据
7 删除数据

现在我将逐步解释每个步骤,并提供相应的代码示例。

步骤1:创建数据库帮助类

首先,我们需要创建一个数据库帮助类,用于管理数据库的创建和版本控制。在该类中,我们需要继承自SQLiteOpenHelper类,并实现其构造函数和onCreate()onUpgrade()方法。

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "my_database.db";
    private static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 在这里创建数据库表
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 在这里更新数据库表结构
    }
}

步骤2:定义数据模型类

接下来,我们需要定义一个数据模型类,用于表示我们要保存的数据对象。在这个类中,我们需要定义表的列名和对应的数据类型。

public class Person {

    private int id;
    private String name;
    private int age;

    // 构造函数
    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getters 和 Setters
    // ...
}

步骤3:创建数据库表

onCreate()方法中,我们可以创建数据库表。在这个方法中,我们需要执行SQL语句来创建表和定义列。

@Override
public void onCreate(SQLiteDatabase db) {
    String createTableQuery = "CREATE TABLE persons (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
    db.execSQL(createTableQuery);
}

步骤4:插入数据

要将数据保存到数据库中,我们需要获取SQLiteDatabase对象,并执行INSERT语句。

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 25);

db.insert("persons", null, values);

步骤5:查询数据

要从数据库中检索数据,我们需要执行SELECT查询语句,并使用Cursor对象来遍历结果集。

SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] columns = {"id", "name", "age"};
String selection = null;
String[] selectionArgs = null;
String groupBy = null;
String having = null;
String orderBy = null;

Cursor cursor = db.query("persons", columns, selection, selectionArgs, groupBy, having, orderBy);

while (cursor.moveToNext()) {
    int id = cursor.getInt(cursor.getColumnIndex("id"));
    String name = cursor.getString(cursor.getColumnIndex("name"));
    int age = cursor.getInt(cursor.getColumnIndex("age"));

    Person person = new Person(id, name, age);
    // 处理每个人物对象
}

cursor.close();

步骤6:更新数据

要更新数据库中的数据,我们需要执行UPDATE语句。

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 26);

String whereClause = "id = ?";
String[] whereArgs = {String.valueOf(1)};

db.update("persons", values, whereClause, whereArgs);

步骤7:删除数据

最后,要从数据库中删除数据,我们需要执行DELETE语句。

SQLiteDatabase db = dbHelper.getWritableDatabase();

String whereClause = "id = ?";
String[] whereArgs = {String.valueOf(1)};

db.delete("persons", whereClause, whereArgs);

以上就是在Android应用程序中使用SQLite数据库保存数据的完整流程和相应的代码示例。希望这篇文章对你有所帮助!


关系图如下:

erDiagram
    PERSON {
        int id
        string name
        int age
    }

序列图如下:

sequenceDiagram
    participant App