返回
Android 原生数据库插入和批量删除数据详解
Android
2023-10-25 05:51:11
在 Android 开发中,原生数据库 SQLite 提供了灵活而强大的数据存储和管理功能。本文将深入探讨原生数据库中插入数据和批量删除数据的最佳实践,通过翔实的代码示例和清晰的解释,帮助您充分掌握这一关键技术。
创建数据库
首先,让我们创建一个名为 "product.db" 的数据库。使用以下代码创建一个新的 SQLiteOpenHelper 子类:
public class DatabaseHelper extends SQLiteOpenHelper {
// 数据库版本
private static final int DATABASE_VERSION = 1;
// 数据库名称
private static final String DATABASE_NAME = "product.db";
// 创建产品的表
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT, price REAL)";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 此处处理数据库升级逻辑
}
}
向数据库插入数据
接下来,让我们向名为 "products" 的表中插入一些数据。使用以下步骤:
- 获取 SQLiteDatabase 对象:
SQLiteDatabase db = helper.getWritableDatabase();
- 创建 ContentValues 对象以存储要插入的数据:
ContentValues values = new ContentValues();
values.put("name", "Product 1");
values.put("price", 10.99);
- 使用 insert() 方法插入数据:
long rowId = db.insert("products", null, values);
- 关闭数据库连接:
db.close();
获取数据库总条数
有时,您可能需要获取数据库中的总条数。使用以下步骤:
- 获取 SQLiteDatabase 对象:
SQLiteDatabase db = helper.getReadableDatabase();
- 执行查询以获取总条数:
Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM products", null);
cursor.moveToFirst();
int count = cursor.getInt(0);
cursor.close();
- 关闭数据库连接:
db.close();
批量删除数据
最后,让我们讨论如何批量删除数据。使用以下步骤:
- 获取 SQLiteDatabase 对象:
SQLiteDatabase db = helper.getWritableDatabase();
- 开始事务:
db.beginTransaction();
- 遍历要删除的行 ID,并使用 delete() 方法删除每行:
for (long rowId : rowIdsToDelete) {
db.delete("products", "id=?", new String[]{String.valueOf(rowId)});
}
- 提交事务:
db.setTransactionSuccessful();
- 关闭数据库连接:
db.close();
总结
通过遵循本文中的步骤,您将能够熟练地使用 Android 原生数据库 SQLite 插入数据和批量删除数据。这些技术对于管理本地数据存储和维护数据完整性至关重要。无论您是构建复杂应用程序还是简单数据存储解决方案,本文提供的知识都将成为您宝贵的财富。