È per due motivi:
- La connessione viene chiusa dopo l'esecuzione del primo
PreparedStatement
getcon
utilizza un'instance
variabile invece dilocal
variabile. Per questo motivo, stessoconn
la variabile (quella chiusa in precedenza) viene restituita quandogetcon
viene chiamato la prossima volta.
Per risolvere questo problema, getcon
e DBConnect
devono essere modificati per dichiarare un conn
locale variabile e restituiscila (infatti, non hai bisogno di DBConnect
affatto), es.:
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);
}
}