Android SQLite数据库使用教程

1. 概述

在Android开发中,使用SQLite数据库是非常常见的。SQLite是一种轻量级的关系型数据库,可以在Android设备中存储和检索数据。本教程将向你介绍如何在Android应用中使用SQLite数据库。

2. 整体流程

下面是使用Android SQLite数据库的整体流程:

步骤 描述
1 创建数据库和数据表
2 打开数据库连接
3 执行SQL查询
4 处理查询结果
5 关闭数据库连接

下面将详细介绍每个步骤所需的代码和操作。

3. 创建数据库和数据表

首先,你需要创建一个继承自SQLiteOpenHelper的数据库助手类。在该类中,你需要实现onCreate()方法和onUpgrade()方法。onCreate()方法在数据库第一次创建时被调用,用于创建数据表。onUpgrade()方法在数据库版本升级时被调用,用于更新数据表。

public class DBHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;

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

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

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String query = "DROP TABLE IF EXISTS mytable";
        db.execSQL(query);
        onCreate(db);
    }
}

4. 打开数据库连接

在你的Activity或Fragment中,你需要创建一个DBHelper对象,并调用getWritableDatabase()方法获取可写数据库连接。

DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();

5. 执行SQL查询

一旦你获得了数据库连接,你可以执行SQL查询。这里以插入一条数据为例。

ContentValues values = new ContentValues();
values.put("name", "John Doe");
long id = db.insert("mytable", null, values);

6. 处理查询结果

你可以使用SQLiteDatabase的查询方法来检索数据。下面是一个简单的例子,查询并打印出所有数据。

String[] columns = {"id", "name"};
Cursor cursor = db.query("mytable", columns, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        Log.d("TAG", "ID: " + id + ", Name: " + name);
    } while (cursor.moveToNext());
}
cursor.close();

7. 关闭数据库连接

在你不再需要数据库连接时,记得关闭它。

db.close();

类图

下面是相关类的类图表示:

classDiagram
    class DBHelper {
        - DATABASE_NAME: String
        - DATABASE_VERSION: int
        + DBHelper(Context context)
        + onCreate(SQLiteDatabase db): void
        + onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion): void
    }
    
    class SQLiteDatabase {
        + insert(String table, String nullColumnHack, ContentValues values): long
        + query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy): Cursor
        + close(): void
    }
    
    class Cursor {
        + moveToFirst(): boolean
        + moveToNext(): boolean
        + getInt(int columnIndex): int
        + getString(int columnIndex): String
        + getColumnIndex(String columnName): int
        + close(): void
    }

状态图

下面是数据库连接的状态图表示:

stateDiagram
    [*] --> Closed
    Closed --> Opened: open()
    Opened --> Closed: close()
    Opened --> Opened: executeQuery()

结论

通过本教程,你学会了如何在Android应用中使用SQLite数据库。首先,你需要创建数据库和数据表。然后,你需要打开数据库连接并执行SQL查询。最后,记得在不需要数据库连接时及时关闭它。使用SQLite数据库可以方便地存储和检索数据,为你的应用增加更多的功能和灵活性。祝你在Android开发中取得成功!