android sqlite数据库中rawquery和execSQL之间的区别

Dil*_*rla 46 sqlite android

使用rawquery和execSQL之间的确切区别是什么?在android活动中编写查询时,何时使用rawquery以及何时使用execSQL?

zap*_*apl 84

从API文档:


void execSQL (String sql)

执行一个非SELECT的SQL语句或任何其他返回数据的SQL语句.

void execSQL (String sql, Object[] bindArgs)

执行一个不是SELECT/INSERT/UPDATE/DELETE的SQL语句.

文档不一致,但它们的行为都相同.后者的文件更深入.


Cursor rawQuery (String sql, String[] selectionArgs)

运行提供的SQL并在结果集上返回Cursor.


用途rawQuery是:

用途execSQL是:

  • 您有数据库的"说明".喜欢CREATE TABLE(或任何其他CREATE声明,例如CREATE INDEX)DROP,PRAGMAs设置属性而不是返回它们,...
  • INSERT,UPDATE或者DELETE 当您对修改的行数或最后一个插入的行ID不感兴趣时​​.
  • 依赖于执行语句的任何其他内容.


waq*_*lam 12

如果你想在数据库中执行一些事情而不考虑它的输出(例如create/alter tables),那么使用execSQL,但如果你期望一些结果反过来你的查询(例如选择记录),那么使用rawQuery


归档时间:

查看次数:

33466 次

最近记录:

9 年,3 月 前