sql >> Base de Datos >  >> RDS >> Mysql

No se permiten operaciones después de cerrar la conexión MYSQL

Es por dos razones:

  • La conexión se cierra después de la ejecución de la primera PreparedStatement
  • getcon utiliza una instance variable en lugar de local variable. Debido a esto, el mismo conn variable (la que se cerró anteriormente) se devuelve cuando getcon se llama la próxima vez.

Para arreglar esto, getcon y DBConnect necesita ser modificado para declarar un conn local variable y devolverlo (de hecho, no necesita DBConnect en absoluto), por ejemplo:

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);
    }
}