SQLiteQueryBuilder.query()vs SQLiteDatabase.query()

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

Solutions Collecting From Web of "SQLiteQueryBuilder.query()vs SQLiteDatabase.query()"

主要方法是SQLiteDatabase#rawQuery()SQLiteDatabase#query()SQLiteQueryBuilder都是构成SQL的助手。

SQLiteDatabase#query()只能从一个表组成简单的查询。 SQLiteQueryBuilder可以创build连接,联合等。 由于SQLiteQueryBuilder是一个额外的对象,所以如果你需要它的权力,你只能构造它。

就我个人而言,我认为任何非平凡的SQL都比SQL更容易阅读为SQL,所以我会使用rawQuery over SQLiteQueryBuilder ,但这是一个SQLiteQueryBuilder的问题,你知道SQL的程度。 SQLiteQueryBuilder也可能是有用的,如果你有一些共同的子查询,你想以不同的方式组合在一起。

事实上,我更喜欢(我使用的主要是使用它的C API的SQLite)使用预处理语句,因为编译的SQL比它的执行速度慢,但我没有看到在Java接口的选项。

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

否则,我不能想出一个坚实的理由来使用SQLiteQueryBuilder比其他方法来查询数据库。