首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Update更新SQLite上的数据更好吗?

使用Update更新SQLite上的数据更好吗?
EN

Stack Overflow用户
提问于 2018-05-10 19:48:27
回答 1查看 400关注 0票数 0

在一个教程中,我看到了使用SQlite数据库使用execSQL更新数据的代码:

代码语言:javascript
复制
    String update = "UPDATE FRUIT SET COLOR=? WHERE ID=?";
    myDatabase.execSQL( update, new Object[] {"RED", 7});
    Cursor cursor = myDatabase.rawQuery("SELECT * FROM FRUIT;", null);
    if (cursor.moveToFirst()) {
        do {
            String name = cursor.getString(cursor.getColumnIndex("NAME"));
            String color = cursor.getString(cursor.getColumnIndex("COLOR"));

            Log.i(TAG, "onCreate: Name: " + name + ", color: " + color);
        } while (cursor.moveToNext());
    }

但是,我在Android的官方文档中看到了

使用execSQL的代码可以工作,但是最好使用更新,或者我仍然可以使用execSQL,因为它工作了?什么是更好的良好做法?由于本教程来源可靠,为什么要使用execSQL

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-11 23:56:02

有关使用execSQL的问题/警告可能有几个原因,其中之一是在使用execSQL时不返回任何内容,而方便方法则返回可能有用的值。

insert将返回一个包含插入的Other-1行的id的long。updatedelete返回受影响的行数。

使用方便的方法还可以通过构建底层SQL、添加关键字和封装字符串来减少键入错误的可能性,而且对于某些重要的问题,还提供了一定程度的针对SQL注入的保护(execSQLbindArgs也提供了针对SQL注入的保护,与rawQuery一样)。

但是,也有一些限制,有时在一些更复杂的情况下,使用execSQL/rawQuery成为必要的。

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

https://stackoverflow.com/questions/50280487

复制
相关文章

相似问题

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