Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Keine Operationen erlaubt, nachdem die Verbindung geschlossen wurde. MYSQL

Das hat zwei Gründe:

  • Verbindung wird nach Ausführung des ersten PreparedStatement geschlossen
  • getcon verwendet eine instance Variable statt local Variable. Aus diesem Grund dasselbe conn Variable (diejenige, die zuvor geschlossen wurde) wird zurückgegeben, wenn getcon wird beim nächsten Mal aufgerufen.

Um dies zu beheben, getcon und DBConnect müssen geändert werden, um ein lokales conn zu deklarieren Variable und geben Sie sie zurück (tatsächlich brauchen Sie DBConnect nicht überhaupt), z. B.:

public Connection getcon(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
        String unicode="useSSL=false&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8";
        return DriverManager.getConnection("jdbc:mysql://localhost:15501/duckdb?"+unicode, "root", "_PWD");
    }catch(Exception ex){
        System.out.println(ex.getMessage());
        System.out.println("couldn't connect!");
        throw new RuntimeException(ex);
    }
}