📅  最后修改于: 2023-12-03 15:29:20.873000             🧑  作者: Mango
SQLite 是一种轻量级的关系型数据库,与 Android 操作系统紧密集成,可以作为应用程序的内部存储或外部存储。
在这份教程中,我们将介绍如何在 Android 中使用 SQLite 数据库,并简单讲解 SQL 查询语句的使用。
在 Android 中创建 SQLite 数据库非常简单。我们可以使用 SQLiteOpenHelper
类来创建或打开一个数据库。以下是一个示例:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.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 sql = "CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS mytable";
db.execSQL(sql);
onCreate(db);
}
}
在上面的示例中,我们创建了一个 DatabaseHelper
类来管理数据库的创建和版本更新。在 onCreate
方法中,我们创建了一个名为 mytable
的表,其中包含两个字段:一个自增长的整数 id
和一个文本 name
。在 onUpgrade
方法中,我们在更新数据库时删除旧的表并重新创建一个新的表。
在 SQLite 中插入数据的语法非常简单。我们只需要使用 INSERT INTO
语句并指定表和字段即可。以下是一个示例:
public void insertData() {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John Doe");
db.insert("mytable", null, values);
db.close();
}
在上面的示例中,我们创建了一个 insertData
方法,用于向 mytable
表中插入数据。我们使用 getContentValues
方法来创建一个包含需要插入的列和值的 ContentValues
对象。然后使用 SQLiteOpenHelper
类中的 getWritableDatabase
方法来获取可写的数据库实例。最后,我们使用 insert
方法将数据插入数据库,并关闭数据库连接。
在 SQLite 中查询数据的语法也非常简单。我们只需要使用 SELECT
语句,并指定需要查询的表和字段即可。以下是一个示例:
public String readData() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT name FROM mytable WHERE id = ?", new String[]{"1"});
String name = "";
if (cursor.moveToFirst()) {
name = cursor.getString(cursor.getColumnIndex("name"));
}
cursor.close();
db.close();
return name;
}
在上面的示例中,我们创建了一个 readData
方法,用于从 mytable
表中读取数据。我们使用 rawQuery
方法来执行一个 SQL 查询,并使用 ?
占位符来避免 SQL 注入攻击。然后我们遍历查询的结果集并获取第一行第一列返回的值。最后我们关闭游标和数据库连接,并返回数据。
在 SQLite 中更新数据的语法也非常简单。我们只需要使用 UPDATE
语句,并指定要更新的表、字段和新值即可。以下是一个示例:
public void updateData(String name, int id) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
db.update("mytable", values, "id = ?", new String[]{String.valueOf(id)});
db.close();
}
在上面的示例中,我们创建了一个 updateData
方法,用于更新 mytable
表中的数据。我们使用 getContentValues
方法来创建一个包含需要更新的列和值的 ContentValues
对象。然后我们使用 update
方法将数据更新到数据库,并关闭数据库连接。
在 SQLite 中删除数据的语法也非常简单。我们只需要使用 DELETE FROM
语句,并指定要删除的表和条件即可。以下是一个示例:
public void deleteData(int id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete("mytable", "id = ?", new String[]{String.valueOf(id)});
db.close();
}
在上面的示例中,我们创建了一个 deleteData
方法,用于删除 mytable
表中的数据。我们使用 delete
方法将数据从数据库中删除,并关闭数据库连接。
通过本教程,我们介绍了如何在 Android 中使用 SQLite 数据库并执行 SQL 查询语句。我们讲述了如何创建数据库、插入数据、更新数据和删除数据。SQLite 是一个十分强大的数据库系统,在移动应用开发中得到了广泛应用。拥有 SQLite 数据库的基础知识是每个 Android 开发者必备的技能之一。