首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLiteQueryBuilder.query() vs SQLiteDatabase.query()

SQLiteQueryBuilder.query() vs SQLiteDatabase.query()
EN

Stack Overflow用户
提问于 2013-06-21 15:39:41
回答 2查看 6.9K关注 0票数 23

这两种方法有什么不同?对我来说,SQLiteDatabase的唯一好处似乎是它能够处理不同的数据库。我说的对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-21 15:57:35

主要的方法是SQLiteDatabase#rawQuery()SQLiteDatabase#query()SQLiteQueryBuilder都只是组成SQL的帮助器。

SQLiteDatabase#query()只能从一个表组成简单的查询。SQLiteQueryBuilder可以创建joins、unions等。因为SQLiteQueryBuilder是一个额外的对象,所以只有在需要它的功能时才会构造它。

就我个人而言,我认为任何重要的SQL都比像这样用helper编写的代码更容易读懂,所以我会使用rawQuery而不是SQLiteQueryBuilder,但这是一个品味和对SQL的了解程度的问题。如果您有一些通用子查询想要以不同的方式组合在一起,那么SQLiteQueryBuilder可能也很有用。

事实上,我更喜欢使用预准备语句,因为SQL的编译速度比它的执行速度慢,而且它避免了对可能不受信任的值进行字符串操作。我一开始找不到这个接口,因为出于某种奇怪的原因,它被称为SQLiteDatabase#compileStatement,而不是底层C API中使用的通常的prepare

票数 27
EN

Stack Overflow用户

发布于 2014-10-09 23:36:24

如果您想在多个表上进行连接,则SQLiteQueryBuilder非常有用。如果您在GrepCode上查看源代码,它有几个方便的方法:SQLiteQueryBuilder

否则,我想不出一个可靠的理由来使用SQLiteQueryBuilder而不是其他方法来查询数据库。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17230049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档