在SQLite中使用直接查询?

时间:2012-10-15 17:06:25

标签: android sqlite

我目前正在研究SQLite,我发现它使用ContentValues等各种类进行插入和更新......我想知道是否必须遵循给定的方式或者我是否可以编写正常的SQL查询并使用db.execSQL ()方法执行它们? 它会给我的数据库带来任何不一致性,因为这些所有“额外”步骤都不会阻止查询的流程,我觉得如果我们直接使用查询会更快。

2 个答案:

答案 0 :(得分:1)

您可以使用db.execSQLselect命令或任何其他返回数据的SQL命令(您使用db.rawQuery())执行所需的任何SQL命令。使用的类是辅助类,使您可以轻松操作数据库(尝试使用ContentValuesdb.execSQL插入100行,每行20列,您将得到这一点)。对于小型表,它不会有太大差异(并且您不会导致不一致),但是,对于具有依赖于用户界面或使用计算的输入的大型表,使用其辅助方法的ContentValues类可能是有用的。

答案 1 :(得分:0)

是的你绝对可以像使用

这样使用
  myDB.execSQL("INSERT INTO MyTable VALUES ('fffff', 'numb', 20)");

只能在将数据库用于小型查询时插入值。 还有一些使用直接方法的缺陷,使用ContentValues将其删除 例如,尝试使用此方法将blob插入数据库,在将检索到的数据转换为位图时将获得空位图。但是当您使用ContentValues插入时,您将获得正确的数据,即您将能够转换进入Bitmap。