美文网首页
[学习]SQLite操作(三)

[学习]SQLite操作(三)

作者: 吴敬悦 | 来源:发表于2021-03-03 23:45 被阅读0次

今天看删除。还是使用第一天创建的表 entry

表目前的状态
我现在有需求,要删除 Python 所在的这条记录:
DELETE FROM entry WHERE subtitle=Python;

android 中可以使用 SQLiteDatabase 为我们提供的 delete 进行删除,在使用之前,先看看 api 的参数说明:

    /**
     * Convenience method for deleting rows in the database.
     *
     * @param table the table to delete from
     * @param whereClause the optional WHERE clause to apply when deleting.
     *            Passing null will delete all rows.
     * @param whereArgs You may include ?s in the where clause, which
     *            will be replaced by the values from whereArgs. The values
     *            will be bound as Strings.
     * @return the number of rows affected if a whereClause is passed in, 0
     *         otherwise. To remove all rows and get a count pass "1" as the
     *         whereClause.
     */
    public int delete(String table, String whereClause, String[] whereArgs) {
        acquireReference();
        try {
            SQLiteStatement statement =  new SQLiteStatement(this, "DELETE FROM " + table +
                    (!TextUtils.isEmpty(whereClause) ? " WHERE " + whereClause : ""), whereArgs);
            try {
                return statement.executeUpdateDelete();
            } finally {
                statement.close();
            }
        } finally {
            releaseReference();
        }
    }
  • table 要删除的表名;
  • whereClause 删除的条件,也就是 SQL 中的 WHERE 后面的条件,要比的变量写成问好,跟查询一样,如果要删除所有行,那么只需要传入 null 即可;
  • whereArgs 这里就是 whereClause 参数里面的问好 ?

返回值是删除的条数。

根据上面的 SQL 语言,我们可以写对应的参数,首先是 table ,填入 entry ;然后是 whereClause 参数:

val whereClause = "${FeedReaderContract.FeedEntry.COLUMN_NAME_SUBTITLE} = ?"

然后就是 whereArgs ,由于这里只有一个问好,所以数组中就一个元素,元素的值就是 Python

val whereArgs = arrayOf("Python")

这样执行上面的函数即可得到删除的条数:

val deletedRows = db.delete(FeedReaderContract.FeedEntry.TABLE_NAME, selection, selectionArgs)

我这里是删除一条,其中 db 我使用的是查询那天拿到的对象:

val db = dbHelper.readableDatabase

我在思考为啥,这个按道理是只能读的,居然也可以用来删除。于是我使用通过下面的方式获取的对象操作了一下,发现也可以:

val db = dbHelper.writableDatabase

相关文章

  • [学习]SQLite操作(三)

    今天看删除。还是使用第一天创建的表 entry 。 我现在有需求,要删除 所在的这条记录: 在 android 中...

  • android笔记6

    本章学习目标: 了解SQLite数据库的特点和体系结构 掌握SQLite数据库的建立和操作方法 SQlite介绍 ...

  • iOS 数据库解决方案

    官方 CoreData Sqlite 第三方 FMDB(封转了Sqlite的操作) 官网 https://git...

  • [学习]SQLite操作(一)

    官网学习地址: 使用 SQLite 保存数据[https://developer.android.com/trai...

  • [学习]SQLite操作(二)

    今天学习了数据库的简单的查询操作。现在还没有用上高级的查询,而是普通的查询。 今天这个是接着昨天的,使用昨天创建的...

  • [学习]SQLite操作(四)

    今天学习更新。 SQLite 删除[https://www.jianshu.com/p/a2c7bfe1b1b5]...

  • SQLite快速入门教程

    这个SQLite快速入门教程教你如何有效地开始学习并使用SQLite。通过本教程的实践操作学习之后,相信你应该可以...

  • Django 操作默认的sqlite3 数据库

    sqlite3 操作 一、进入sqlite3 命令行 二、查看表 三、删除表 注意:sql结尾要的';'

  • Sqlite 使用笔记

    1. 数据库基本操作封装 sqlite 数据操作 语句类型 sqlite 数据库的简单实用- 导入sqlite3数...

  • SQLite

    SQLite 基础知识 SQLite 列操作 sqlite中不支持删除列的操作,也不能够修改主键。 从上图可见,S...

网友评论

      本文标题:[学习]SQLite操作(三)

      本文链接:https://www.haomeiwen.com/subject/hgqhqltx.html