【问题标题】:How can I insert directly an statement sql?如何直接插入语句sql?
【发布时间】:2013-10-26 11:02:14
【问题描述】:

嗯,有一个字符串包含 INSERT INTO PERSON (ID, NAME) VALUES (1, 'Person1');

如何在不使用 ContentValues 和 SQLiteDatabase.insert() 的情况下直接在 Android SQLite 上插入?

【问题讨论】:

    标签: android sqlite sqliteopenhelper


    【解决方案1】:

    Android 文档鼓励使用查询、插入、删除和更新方法,但对于更复杂的操作,可以使用自定义 SQL 语句:

    • 对于 INSERT/UPDATE/DELETE 操作,您可以使用 SQLiteDatabase.execSql(String sql)。
    • 对于 SELECT 操作,您可以使用 rawQuery(String sql, String[] selectionArgs)。

    更多详情请见SQLiteDatabase Documentation

    【讨论】:

    • 我尝试使用 SQLiteDatabase.execSql() 但不起作用.. public void execSQL (String sql, Object[] bindArgs) 执行不是 SELECT/INSERT/UPDATE/ 的单个 SQL 语句删除。不适合插入,对吧?我英语不好=/
    • execSql打算用于插入,但它会起作用。唯一的问题是您必须自己格式化 INSERT 语句。
    • execSql 用于插入,但不推荐,因为此方法没有返回值。那么你就无法在这个操作中检索到受影响的行数了。
    【解决方案2】:

    您可以使用 rawQuery() 来做到这一点 -

    database.rawQuery(sql, selectionArgs);
    

    【讨论】:

      猜你喜欢
      • 2015-04-03
      • 1970-01-01
      • 2023-03-17
      • 2018-12-28
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多