Android Studio 打开 SQLite 数据库的使用指南

SQLite 是 Android 应用开发中最常用的轻量级数据库,它被广泛应用于小型数据存储和管理。本文将向你介绍如何在 Android Studio 中使用 SQLite 数据库,包括建立数据库、创建表格、插入数据以及查询和删除数据的基本操作。通过实例代码,我们将详细说明每个步骤。

1. 创建 SQLite 数据库

在 Android 项目中,我们通常会创建一个继承自 SQLiteOpenHelper 的类来管理 SQLite 数据库。下面是一个简单的数据库管理类示例:

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "myDatabase.db";
    private static final int DATABASE_VERSION = 1;
    public static final String TABLE_NAME = "myTable";
  
    // 表字段
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_NAME = "name";
  
    // 创建表格的 SQL 语句
    private static final String CREATE_TABLE =
            "CREATE TABLE " + TABLE_NAME + "(" +
            COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
            COLUMN_NAME + " TEXT NOT NULL" +
            ");";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE);
    }

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

代码解读

  • DATABASE_NAMEDATABASE_VERSION 是数据库的名称和版本号。
  • TABLE_NAME 定义了表格的名称。
  • CREATE_TABLE 是创建表格的 SQL 语句,包含两个字段 id(主键)和 name
  • onCreate() 方法用于创建数据库时执行的操作,而 onUpgrade() 方法用于数据库版本更新时的操作。

2. 插入数据

接下来,提供插入数据的方法。我们可以在 DatabaseHelper 类中添加插入方法:

public void insertData(String name) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, name);
    db.insert(TABLE_NAME, null, values);
    db.close();
}

代码解读

  • getWritableDatabase() 用于获取可写的数据库实例。
  • ContentValues 是一个用于存储字段名和对应值的集合。
  • db.insert(...) 方法则用于执行插入操作。

3. 查询数据

查询数据是数据库操作中相对复杂但却非常重要的一部分。下面是一个查询所有数据的方法:

public Cursor getAllData() {
    SQLiteDatabase db = this.getReadableDatabase();
    return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
}

代码解读

  • getReadableDatabase() 用于获取可读的数据库实例。
  • rawQuery(...) 方法则执行 SQL 查询并返回一个 Cursor 对象,用于遍历查询结果。

4. 删除数据

为了增强数据库的功能性,我们可以添加一个删除数据的方法:

public void deleteData(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
    db.close();
}

代码解读

  • db.delete(...) 方法接收表名、条件和条件参数来执行删除操作。这里通过传入的 id 来删除特定记录。

5. 使用数据库功能

为了验证我们所实现的功能,可以在 MainActivity 中调用这些方法,进行测试:

public class MainActivity extends AppCompatActivity {
    DatabaseHelper db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        db = new DatabaseHelper(this);
  
        // 插入数据
        db.insertData("Alice");
        db.insertData("Bob");
  
        // 查询数据
        Cursor cursor = db.getAllData();
        if (cursor.moveToFirst()) {
            do {
                Log.d("Database", "ID: " + cursor.getInt(0) + ", Name: " + cursor.getString(1));
            } while (cursor.moveToNext());
        }
        cursor.close();
  
        // 删除数据
        db.deleteData(1);
    }
}

代码解读

  • onCreate() 方法中,我们首先创建 DatabaseHelper 的实例。
  • 通过调用 insertData(...) 方法插入两条数据。
  • 使用 getAllData() 方法,遍历查询结果并用 Log 打印输出每条记录。
  • 最后调用 deleteData(...) 方法删除 ID 为 1 的记录。

6. 总结

通过以上的示例代码和解释,我们学习到了如何在 Android Studio 中打开并使用 SQLite 数据库。这包括了数据库的创建、数据的插入、查询和删除等基本操作。在实际开发中,我们可以根据需求拓展更多复杂的操作,例如更新数据、建立多个表格等。

希望本篇指南能帮助你在 Android 开发中更好地使用 SQLite 数据库!后续可以进一步深入学习 SQLite 的高级特性与性能优化,提升你的应用体验与数据管理能力。