C'est pour deux raisons :
- La connexion est fermée après l'exécution du premier
PreparedStatement
getcon
utilise uneinstance
variable au lieu delocal
variable. Pour cette raison, mêmeconn
variable (celle qui a été fermée plus tôt) est renvoyée lorsquegetcon
est appelé la prochaine fois.
Pour résoudre ce problème, getcon
et DBConnect
doit être modifié pour déclarer un conn
local variable et la renvoyer (en fait, vous n'avez pas besoin de DBConnect
du tout), par exemple :
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);
}
}