<分区>
我正在学习在 android 中实现数据库,我遇到了这个 query() 和 rawQuery() ,我想知道它们之间的区别以及哪个在 android 中是有效的
<分区>
我正在学习在 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 错误
C# 在 SQLite 和 SQL Server 之间同步数据
java - 我应该在 OnBindViewHolder() 方法中设置 ReyclerView 项目的 OnClickListener 吗?