在For循环中生成预处理语句



我有一个SQL Server表,其中行数和列名使用循环生成。现在对于数据插入,我需要根据行数在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]);
} 

相关内容

  • 没有找到相关文章

最新更新