Das hat zwei Gründe:
- Verbindung wird nach Ausführung des ersten
PreparedStatement
geschlossen getcon
verwendet eineinstance
Variable stattlocal
Variable. Aus diesem Grund dasselbeconn
Variable (diejenige, die zuvor geschlossen wurde) wird zurückgegeben, wenngetcon
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);
}
}