在Android中SQLiteDatabase如何操作SQLite 数据库

SQLiteDatabase 是 Android 中用于管理 SQLite 数据库的类,它提供了一组方法来执行数据库操作。

常用方法

  • openDatabase():打开数据库。
  • close():关闭数据库。
  • execSQL():执行 SQL 语句。
  • insert():插入数据。
  • update():更新数据。
  • delete():删除数据。
  • query():查询数据。
  • rawQuery():执行原始 SQL 语句。
  • compileStatement():编译 SQL 语句。
  • execute():执行已编译的 SQL 语句。

示例代码

1. 获取 SQLiteDatabase 实例: 要使用 SQLiteDatabase,首先需要获取它的实例。通常,你会使用 SQLiteOpenHelpergetWritableDatabase()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 的基本知识和示例代码。在实际应用中,你需要根据具体需求执行插入、查询、更新和删除等操作,并确保在事务中管理数据库操作以确保数据的一致性。请根据你的应用需求灵活使用这些方法。

SQLite 支持数据类型

数据类型说明
INTEGER用于存储整数值,可以是有符号整数或无符号整数。SQLite会自动选择适当的整数存储大小。
REAL用于存储浮点数值,通常用于存储小数或科学计数法表示的数值。
TEXT用于存储文本字符串,可以存储任意文本数据,包括字符、数字、日期、时间等。
BLOB用于存储二进制数据,可以存储任意二进制数据,如图像、音频、视频等。
NUMERIC用于存储数字数据,SQLite会根据数据的格式自动选择INTEGER、REAL或TEXT类型。
DATE/TIME虽然SQLite没有专门的DATE和TIME数据类型,但可以使用TEXT或INTEGER来存储日期和时间,并通过函数进行解析和格式化。
BOOLEANSQLite没有内置的BOOLEAN类型,但通常使用INTEGER来表示布尔值,0表示假(false),非零值表示真(true)。

SQLite的动态类型允许在同一列中存储不同数据类型的值,但最终的数据类型会根据存储的实际值确定。这种灵活性有时能提供方便,但在处理数据类型一致性时需要特别注意。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WiFiMing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值