赞
踩
SQLiteDatabase
是 Android 中用于管理 SQLite 数据库的类,它提供了一组方法来执行数据库操作。
1. 获取 SQLiteDatabase 实例: 要使用 SQLiteDatabase
,首先需要获取它的实例。通常,你会使用 SQLiteOpenHelper
的 getWritableDatabase()
或 getReadableDatabase()
方法来获取 SQLiteDatabase
实例。
// 创建或打开一个数据库,获取可写数据库的实例
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 或获取只读数据库的实例
SQLiteDatabase db = dbHelper.getReadableDatabase();
2. 创建表格: 使用 execSQL()
方法执行 SQL 语句来创建数据库表格。
String createTableSQL = "CREATE TABLE IF NOT EXISTS my_table (" +
"id INTEGER PRIMARY KEY," +
"name TEXT," +
"age INTEGER)";
db.execSQL(createTableSQL);
3. 插入数据: 使用 insert()
方法插入新数据。
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 30);
long newRowId = db.insert("my_table", null, values);
4. 查询数据: 使用 query()
方法查询数据。
String[] projection = {"id", "name", "age"};
String selection = "name=?";
String[] selectionArgs = {"John"};
Cursor cursor = db.query("my_table", projection, selection, selectionArgs, null, null, null);
5. 更新数据: 使用 update()
方法更新数据。
ContentValues values = new ContentValues();
values.put("age", 31);
String selection = "name=?";
String[] selectionArgs = {"John"};
int rowsUpdated = db.update("my_table", values, selection, selectionArgs);
6. 删除数据: 使用 delete()
方法删除数据。
String selection = "name=?";
String[] selectionArgs = {"John"};
int rowsDeleted = db.delete("my_table", selection, selectionArgs);
7. 执行自定义 SQL 语句: 使用 execSQL()
方法执行自定义的 SQL 语句。
String customSQL = "DELETE FROM my_table WHERE age < 30";
db.execSQL(customSQL);
8. 事务操作: 使用 beginTransaction()
、setTransactionSuccessful()
和 endTransaction()
来管理事务。
db.beginTransaction();
try {
// 执行一系列数据库操作
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
9. 关闭数据库连接: 在不再需要数据库连接时,应该及时关闭它。
db.close();
以上是关于 SQLiteDatabase
的基本知识和示例代码。在实际应用中,你需要根据具体需求执行插入、查询、更新和删除等操作,并确保在事务中管理数据库操作以确保数据的一致性。请根据你的应用需求灵活使用这些方法。
数据类型 | 说明 |
---|---|
INTEGER | 用于存储整数值,可以是有符号整数或无符号整数。SQLite会自动选择适当的整数存储大小。 |
REAL | 用于存储浮点数值,通常用于存储小数或科学计数法表示的数值。 |
TEXT | 用于存储文本字符串,可以存储任意文本数据,包括字符、数字、日期、时间等。 |
BLOB | 用于存储二进制数据,可以存储任意二进制数据,如图像、音频、视频等。 |
NUMERIC | 用于存储数字数据,SQLite会根据数据的格式自动选择INTEGER、REAL或TEXT类型。 |
DATE/TIME | 虽然SQLite没有专门的DATE和TIME数据类型,但可以使用TEXT或INTEGER来存储日期和时间,并通过函数进行解析和格式化。 |
BOOLEAN | SQLite没有内置的BOOLEAN类型,但通常使用INTEGER来表示布尔值,0表示假(false),非零值表示真(true)。 |
SQLite的动态类型允许在同一列中存储不同数据类型的值,但最终的数据类型会根据存储的实际值确定。这种灵活性有时能提供方便,但在处理数据类型一致性时需要特别注意。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。