「Android 数据库操作」——实现数据存储与读取 (android 数据库 操作)
Android 数据库操作:实现数据存储与读取
在开发 Android 应用程序时,常常需要使用数据库进行数据的存储与读取。Android 支持多种数据库,包括 SQLite、Realm 等。本文将以 SQLite 数据库为例,介绍 Android 数据库操作的实现方法,包括建表、增删改查等操作。
一、SQLite 数据库的创建与打开
在 Android 应用程序中创建 SQLite 数据库,可以通过使用 SQLiteOpenHelper 类。该类提供了创建、打开、更新数据库的方法。
在使用 SQLiteOpenHelper 类创建数据库时,需要重写该类的 onCreate() 方法和 onUpgrade() 方法。onCreate() 方法在数据库被创建时调用,通常用于创建数据库表、初始化数据等操作。onUpgrade() 方法在数据库版本升级时调用,可以用于更新表结构、修改数据等操作。
以下是一个创建数据库的例子:
“`java
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK = “create table Book (“
+ “id integer primary key autoincrement, “
+ “author text, “
+ “price real, “
+ “pages integer, “
+ “name text)”;
public MyDatabaseHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// do something when upgrading
}
}
“`
在上面的例子中,我们创建了一个名为 Book 的表,该表包含四个字段:id(主键)、author(作者)、price(价格)、pages(页数)和 name(书名)。
二、数据库表的增删改查操作
在实现 Android 数据库操作中,增删改查是最基本的操作。下面我们将详细介绍如何进行这些操作。
1. 插入数据
向数据库表中插入数据,可以使用 SQLiteDatabase 中的 insert() 方法。该方法需要传递三个参数:表名、空列的默认值和要插入的数据。以下是一个插入数据的例子:
“`java
ContentValues values = new ContentValues();
values.put(“author”, “Tom”);
values.put(“price”, 20.3);
values.put(“pages”, 300);
values.put(“name”, “Android Development”);
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.insert(“Book”, null, values);
“`
在上面的例子中,我们首先创建了一个 ContentValues 对象,用于存储要插入的数据。然后通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 insert() 方法向 Book 表中插入数据。
2. 更新数据
更新数据库表中的数据,可以使用 SQLiteDatabase 中的 update() 方法。该方法需要传递四个参数:表名、更新的数据、更新的条件和更新的条件参数。以下是一个更新数据的例子:
“`java
ContentValues values = new ContentValues();
values.put(“price”, 30.5);
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.update(“Book”, values, “name = ?”, new String[] { “Android Development” });
“`
在上面的例子中,我们首先创建了一个 ContentValues 对象,用于存储要更新的数据。然后通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 update() 方法更新 Book 表中名为 Android Development 的书的价格。
3. 删除数据
从数据库表中删除数据,可以使用 SQLiteDatabase 中的 delete() 方法。该方法需要传递三个参数:表名、删除条件和删除条件参数。以下是一个删除数据的例子:
“`java
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete(“Book”, “pages > ?”, new String[] { “500” });
“`
在上面的例子中,我们通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 delete() 方法删除 Book 表中页数大于 500 的书。
4. 查询数据
从数据库表中查询数据,可以使用 SQLiteDatabase 中的 query() 方法。该方法需要传递七个参数:表名、返回的字段、查询条件、查询条件参数、分组条件、having 条件和排序条件。
以下是一个查询数据的例子:
“`java
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query(“Book”, null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String author = cursor.getString(cursor.getColumnIndex(“author”));
String name = cursor.getString(cursor.getColumnIndex(“name”));
double price = cursor.getDouble(cursor.getColumnIndex(“price”));
int pages = cursor.getInt(cursor.getColumnIndex(“pages”));
} while (cursor.moveToNext());
}
cursor.close();
“`
在上面的例子中,我们通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 query() 方法查询 Book 表中的所有数据。然后通过 moveToFirst() 和 moveToNext() 方法遍历查询结果,获取想要的数据。
三、
通过本文,我们了解了 Android 数据库操作的实现方法,包括 SQLite 数据库的创建与打开、数据库表的增删改查等操作。在实际开发中,我们可以根据实际需要,灵活运用这些操作,实现数据的存储与读取。