Java:Android:SQLite:使用 For 循环执行多次插入

标签 java android sqlite for-loop insert

请查看以下代码:

try {
          db.beginTransaction();
          db.execSQL(DBConstants.PRAG_FOR_KEYS_ON);

          db.execSQL(DBConstants._BLDG_CREATE);
          db.execSQL(DBConstants._BLDG_INDEX);
          for(int x = 0; x < 28; x = x+1){
              db.execSQL(DBConstants._BLDG_INSERT+x);
          }

          db.execSQL(DBConstants.PRAG_FOR_KEYS_OFF);
          db.setTransactionSuccessful();
        } catch (SQLException e) {
          e.printStackTrace();
        }finally{
          db.endTransaction();
        }

每个插入常量(代表一行新数据)的编号如下:

public static final String _BLDG_INSERT0 = "<SQL insert statement>"

...一直到 28(“_BLDG_INSERT28”)。

有什么方法可以在 for 循环中执行这些 SQL 语句吗?如果可以,我如何将数字连接到常量的名称上,并让 java 解释器以正确的方式识别它?

谢谢!

最佳答案

从问题中尚不清楚您是否能够更改常量。如果可以的话,最好将语句放入数组中。

String[] _BLDG_INSERT = {"<SQL insert statement>",   // 0
                         "<SQL insert statement>",   // 1
                         ...
                         "<SQL insert statement>"    // 28
                        };

然后你就可以像这样访问它们。

for(int x = 0; x < 28; x = x+1){
    db.execSQL(DBConstants._BLDG_INSERT[x]);
}

或者更好:

for(String s : DBConstants._BLDG_INSERT) {
    db.execSQL(s);
}

关于Java:Android:SQLite:使用 For 循环执行多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357103/

相关文章:

android - 在 Android 中,我可以对游标执行 sql 查询吗?

android - Branch.io 返回 "Session initialization already happened"错误消息

java - Android Studio:将字符串从HashMap转换为Uri后,尝试播放音频时出现java.io.FileNotFoundException

java - Android Socket 读取问题

java - 是什么导致 Tomcat 7 中出现 NotSerializableException?

android - IntentService 在 Android 4.2 (Jelly Bean) 上有问题吗?

python - 如何将内存中的 SQLite 数据库复制到 Python 中的另一个内存中的 SQLite 数据库?

c# - C#如何判断一个表是否存在

java - Delombok 找不到所有依赖项的符号

java - 尝试获取可序列化对象的输入时出现 NullPointerException