I have a SQL Server table which number of row and the column name generated by using loop. Now for the data insert, I need to generate Prepared Statement inside for loop based on number of rows. My first approach by using 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();
As you can see it is highly ineffective. Is there a better way than this?
Your switch/case statement could be written something like this.
for (int index = 0; index < numberOfRows; index++) {
statement.setString(index + 1, String.valueOf(rowObjects[index]);
}