如何在 Android Studio 中使用自带数据库

Android Studio 提供了一种简单的方法来使用 SQLite 数据库,使得数据存储和管理变得更加容易。本文将带领你了解如何在 Android Studio 中实现自带数据库的详细步骤。

流程概览

我们使用以下流程来实现 Android 的 SQLite 数据库:

步骤 描述
1 创建数据库帮助类
2 定义数据库表和列
3 实现对数据库的基本操作
4 测试数据库操作
5 显示数据

步骤详解

1. 创建数据库帮助类

首先,我们需要创建一个帮助类来管理我们的 SQLite 数据库。

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

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) {
        String CREATE_TABLE = "CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)";  // 创建表
        db.execSQL(CREATE_TABLE);  // 执行 SQL 语句
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS my_table");  // 删除旧表
        onCreate(db);  // 创建新表
    }
}

代码解析

  • 这里创建了一个 DatabaseHelper 类,继承自 SQLiteOpenHelper
  • onCreate 方法中定义了表的结构,包括字段及其数据类型。
  • onUpgrade 方法用于处理数据库版本更新时的操作。

2. 定义数据库表和列

onCreate 方法中,我们已经定义了表及列的信息。本例中我们创建了一个包含 idname 列的表。

3. 实现对数据库的基本操作

接下来,我们需要实现对数据库的基本操作,如插入、查询、更新和删除数据。

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DatabaseManager {

    private DatabaseHelper dbHelper;

    public DatabaseManager(Context context) {
        dbHelper = new DatabaseHelper(context);  // 实例化数据库帮助类
    }

    public void addData(String name) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();      // 获取可写数据库
        ContentValues values = new ContentValues();              // 储存新数据
        values.put("name", name);                                // 将数据放入 ContentValues
        db.insert("my_table", null, values);                    // 插入数据库
        db.close();                                             // 关闭数据库连接
    }

    public Cursor fetchData() {
        SQLiteDatabase db = dbHelper.getReadableDatabase();     // 获取可读数据库
        return db.query("my_table", null, null, null, null, null, null);  // 查询数据
    }
}

代码解析

  • addData 方法用于向数据库添加一条记录。
  • fetchData 方法用于获取表中的所有数据。

4. 测试数据库操作

我们可以在主活动中测试数据库操作。

import android.database.Cursor;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    
    DatabaseManager dbManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dbManager = new DatabaseManager(this);  // 实例化数据库管理类
        dbManager.addData("Alice");              // 添加数据
        
        Cursor cursor = dbManager.fetchData();   // 获取数据
        if (cursor != null) {
            while (cursor.moveToNext()) {        // 遍历游标并显示数据
                String name = cursor.getString(cursor.getColumnIndex("name"));
                Toast.makeText(this, "Name: " + name, Toast.LENGTH_SHORT).show();
            }
            cursor.close();  // 关闭游标
        }
    }
}

5. 显示数据

在上述代码中,我们通过 Toast 显示了用户插入的数据。这样就完成了数据的增、查操作。

类图

以下是 DatabaseHelperDatabaseManager 的类图:

classDiagram
class DatabaseHelper {
    +DatabaseHelper(Context context)
    +onCreate(SQLiteDatabase db)
    +onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
}

class DatabaseManager {
    +DatabaseManager(Context context)
    +addData(String name)
    +fetchData() : Cursor
}
DatabaseHelper --> DatabaseManager

序列图

以下是对数据库操作的序列图,包括添加和获取数据的过程:

sequenceDiagram
    participant User
    participant MainActivity
    participant DatabaseManager
    participant DatabaseHelper

    User->>MainActivity: start()
    MainActivity->>DatabaseManager: new DatabaseManager()
    DatabaseManager->>DatabaseHelper: new DatabaseHelper()
    DatabaseManager->>DatabaseHelper: addData("Alice")
    DatabaseHelper->>SQLiteDatabase: insert()
    DatabaseManager->>DatabaseHelper: fetchData()
    DatabaseHelper->>SQLiteDatabase: query()
    DatabaseManager->>MainActivity: return Cursor
    MainActivity->>User: show data

结尾

这篇文章介绍了如何在 Android Studio 中实现自带数据库的基本应用。我们通过创建数据库帮助类、管理数据操作到测试应用,逐步引导你完成 SQLite 数据库的实现。这些基本操作是后续更复杂数据管理的基础,希望这篇指导对你有所帮助,助你在 Android 开发的道路上越走越远!