Операции запрещены после закрытия выписки
Я получаю Исключение с подписьюNo operations allowed after statement closed.
внутри моего кода Java, где я пытаюсь вставить значения в базу данных. Подпись об ошибке говорит о том, что мой объект Statement закрывается, и я пытаюсь снова использовать его в своем коде, но я пытаюсь понять, почему это происходит, поскольку я не закрываю какие-либо соединения в моем коде.
Вот код Java.
public class DataBaseAccessUtils {
private static String jdbcUrl =
AppConfig.findMap("BXRequestTracker").get("jdbcUrl").toString();
private static Connection connection = null;
private static Statement statement = null;
public static void insertHostname(String hostname, String rid, String fleet, String locale)
{
locale.toUpperCase();
String sql = "UPDATE " + locale + "REQUESTTRACKER SET " + fleet
+ "='" + hostname + "' WHERE RID='" + rid + "'";
try {
statement.execute(sql);
}
catch (SQLException e) {
e.printStackTrace();
}
}
public static Statement connectToDatabase() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(DataBaseAccessUtils.jdbcUrl);
statement = connection.createStatement();
}
catch (Exception e) {
e.printStackTrace();
}
return statement;
}
Также я заметил, что ошибка возникает не при однопоточном выполнении, а когда несколько потоков пытаются обновить базу данных одновременно.