android - sqlite中的query()和rawQuery()有什么区别,哪个更高效更goog

标签 android sqlite

<分区>

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

最佳答案

来自 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()。它们应该大致相同,假设您也做了同样的工作来构建您自己的陈述。

关于android - sqlite中的query()和rawQuery()有什么区别,哪个更高效更goog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711050/

相关文章:

MySQL:如何获得 View 的模块化,但较长代码的优化?

ios - 在 iOS 中创建带文件保护的 SQLite3 数据库失败

java - 如果我覆盖不在 Activity 中的另一个 fragment 中的接口(interface),如何初始化 fragment 中的接口(interface)回调

objective-c - 选择 sqlite 表中的所有列并将其存储在(可变)数组中 - 并将数组返回给调用者

java - Android 上的 Jsoup - OutOfMemory 错误

android - Google Admob 原生广告

C# 在 SQLite 和 SQL Server 之间同步数据

android sqlite fts 不区分大小写

android - android中的页面指示器

java - 我应该在 OnBindViewHolder() 方法中设置 ReyclerView 项目的 OnClickListener 吗?