SQLiteQueryBuilder.query()vs SQLiteDatabase.query()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLiteQueryBuilder.query()vs SQLiteDatabase.query()相关的知识,希望对你有一定的参考价值。
这两种方法有什么区别?对我来说,似乎SQLiteDatabase的唯一好处是它能够使用不同的数据库。我对吗?
主要方法是SQLiteDatabase#rawQuery()
。 SQLiteDatabase#query()
和SQLiteQueryBuilder
都只是组成SQL的助手。
SQLiteDatabase#query()
只能从一个表中组成简单的查询。 SQLiteQueryBuilder
可以创建连接,联合等。由于SQLiteQueryBuilder
是一个额外的对象,你只需要构建它,如果你需要它的力量。
就个人而言,我认为任何非平凡的SQL都比SQL更容易被读取,因此我会使用rawQuery
而不是SQLiteQueryBuilder
,但这是一个品味问题以及你对SQL的了解程度。如果您想要以不同方式组合在一起的一些常见子查询,那么SQLiteQueryBuilder
也可能很有用。
事实上,我更喜欢使用预准备语句,因为与其执行相比,SQL的编译速度较慢,并且因为它避免了对可能不受信任的值执行字符串操作。我一开始找不到API,因为出于某种奇怪的原因,它被称为SQLiteDatabase#compileStatement
而不是底层C API中常用的prepare
。
如果要在多个表上进行连接,SQLiteQueryBuilder非常有用。如果您在GrepCode上查看源代码,它有几种方便的方法:SQLiteQueryBuilder
否则,我无法想到使用SQLiteQueryBuilder而不是其他查询数据库的方法。
以上是关于SQLiteQueryBuilder.query()vs SQLiteDatabase.query()的主要内容,如果未能解决你的问题,请参考以下文章