Я пытаюсь выполнить запрос INSERT
в цикле:
String selectTableSQL = "SELECT * "
+ "FROM testTable";
ResultSet rs = stmt.executeQuery(selectTableSQL);
while (rs.next()) {
String rangeName = rs.getString("RANGENAME");
insertTableSQL = "INSERT INTO testTable2 "
+ "VALUES ('" + rangeName + "')";
try {
stmt.executeUpdate(insertTableSQL);
} catch (SQLException e) {
// do nothing
}
Но после одной итерации этот цикл прерывается. Если я не выполняю запрос INSERT
и не печатаю rangeName
чтобы rangeName
что все работает отлично (существует множество значений, а не только один). Таким образом, проблема заключается в выполнении инструкции. Как я могу это решить?
Большое спасибо!
Конечно, это так: вы используете ту же самую stmt
Создайте новую переменную stmt2
и используйте ее внутри цикла, не разрушая предыдущую.
PreparedStatement
для INSERT
.
stmt2
в цикле?
Во-первых: никогда не делайте этого
} catch (SQLException e) {
// do nothing
}
Добавьте e.printStackTrace()
в блок catch.
Я думаю, вы получите исключение, когда вы это сделаете. Вам может понадобиться вторая переменная оператора.
INSERT INTO testTable2 SELECT RANGENAME FROM testTable
?