请查看以下代码:
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/