【问题标题】:what is the difference between query() and rawQuery() in sqlite and which one is more efficient and goog [duplicate]sqlite 中的 query() 和 rawQuery() 有什么区别,哪个更高效和 goog [重复]
【发布时间】:2014-11-03 09:15:35
【问题描述】:

我正在学习在 android 中实现数据库,我遇到了这个 query() 和 rawQuery() ,我想知道它们之间的区别以及在 android 中哪个是有效的

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    来自 API 文档:

    public void execSQL (String sql)
    

    执行不是 SELECT 的单个 SQL 语句或任何其他返回数据的 SQL 语句。

    public Cursor rawQuery (String sql, String[] selectionArgs)
    

    运行提供的 SQL 并在结果集上返回一个 Cursor。

    如果你想,例如CREATE TABLE 不返回值,您可以使用 execSQL(),如果您想要 Cursor 作为结果,请使用 rawQuery()(=SELECT 语句)。

    查看 android 源代码中的 SQLiteDatabase.java 会发现 query(..) 最终调用 QueryBuilder 以将查询构建为单个字符串,然后它实质上调用 rawQuery()。假设您也做了同样的工作来构建自己的语句,它们应该大致相同。

    【讨论】:

    • 非常感谢,我正在等待这样的解释。
    猜你喜欢
    • 2021-05-01
    • 2012-02-08
    • 2019-10-13
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    相关资源
    最近更新 更多