返回

日常搬砖——SQLite 增、改、查、删

见解分享

日常搬砖——SQLite 增、改、查、删

**前言**

又更新了!在上一篇博客中,我们讨论了 SQLite 可用类型和存储类型。另一篇博客提到 JSON 对象不仅可以通过对象类解析,还可以解析成映射。巧合的是,SQLite 添加和更新所需的 ContentValues 也是一个类似于映射的结构。

**ContentValues**

ContentValues 是一个键值对映射,用于存储要插入或更新到数据库中的数据。键是列名,值是列值。ContentValues 对象可以通过以下方法创建:

  • `new ContentValues()`
  • `ContentValues(int)`,其中 int 是初始容量
  • `ContentValues(ContentValues)`,其中 ContentValues 是要复制的 ContentValues 对象

要向 ContentValues 对象中添加键值对,可以使用以下方法:

  • `put(String key, String value)`
  • `put(String key, byte[] value)`
  • `put(String key, Long value)`
  • `put(String key, Double value)`
  • `put(String key, Boolean value)`

要从 ContentValues 对象中获取值,可以使用以下方法:

  • `getAsString(String key)`
  • `getAsByteArray(String key)`
  • `getAsLong(String key)`
  • `getAsDouble(String key)`
  • `getAsBoolean(String key)`

**插入数据**

要向表中插入数据,可以使用以下代码:

```java ContentValues values = new ContentValues(); values.put("name", "John Doe"); values.put("age", 30);

long rowId = db.insert("people", null, values);

<p>insert() 方法返回新插入行的行 ID。如果插入失败,则返回 -1。</p>
<p>**更新数据** </p>
<p>要更新表中的数据,可以使用以下代码:</p>
```java
ContentValues values = new ContentValues();
values.put("age", 31);

int count = db.update("people", values, "name = ?", new String[] { "John Doe" });

update() 方法返回受影响的行数。如果更新失败,则返回 0。

**查询数据**

要从表中查询数据,可以使用以下代码:

```java String[] projection = { "name", "age" }; String selection = "age > ?"; String[] selectionArgs = { "25" }; String orderBy = "name ASC";

Cursor cursor = db.query("people", projection, selection, selectionArgs, null, null, orderBy);

<p>query() 方法返回一个 Cursor 对象,其中包含查询结果。Cursor 对象可以用来遍历结果并获取各个列的值。</p>
<p>**删除数据** </p>
<p>要从表中删除数据,可以使用以下代码:</p>
```java
int count = db.delete("people", "name = ?", new String[] { "John Doe" });

delete() 方法返回受影响的行数。如果删除失败,则返回 0。

**结论**

本博客介绍了使用 ContentValues 对象在 SQLite 中插入、更新、查询和删除数据的步骤。这些操作对于管理 SQLite 数据库至关重要。在下一篇博客中,我们将讨论一些高级 SQLite 主题,例如事务和索引。