在 For 循环中生成准备好的语句
Generate Prepared Statement Inside For Loop
我有一个SQL服务器table,它的行数和列名是通过循环生成的。现在对于数据插入,我需要根据行数在 for 循环内生成 Prepared Statement。我的第一种方法是使用 Switch Case。
int numberOfRows;
PreparedStatement statement;
Object[] rowObjects;
switch (numberOfRows) {
case 1 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
}
case 2 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
statement.setString(2, String.valueOf(rowObjects[1]));
}
case 3 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
statement.setString(2, String.valueOf(rowObjects[1]));
statement.setString(3, String.valueOf(rowObjects[2]));
}
}
statement.executeUpdate();
如您所见,它非常无效。还有比这更好的方法吗?
你的switch/case语句可以这样写。
for (int index = 0; index < numberOfRows; index++) {
statement.setString(index + 1, String.valueOf(rowObjects[index]);
}
我有一个SQL服务器table,它的行数和列名是通过循环生成的。现在对于数据插入,我需要根据行数在 for 循环内生成 Prepared Statement。我的第一种方法是使用 Switch Case。
int numberOfRows;
PreparedStatement statement;
Object[] rowObjects;
switch (numberOfRows) {
case 1 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
}
case 2 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
statement.setString(2, String.valueOf(rowObjects[1]));
}
case 3 -> {
statement.setString(1, String.valueOf(rowObjects[0]));
statement.setString(2, String.valueOf(rowObjects[1]));
statement.setString(3, String.valueOf(rowObjects[2]));
}
}
statement.executeUpdate();
如您所见,它非常无效。还有比这更好的方法吗?
你的switch/case语句可以这样写。
for (int index = 0; index < numberOfRows; index++) {
statement.setString(index + 1, String.valueOf(rowObjects[index]);
}