Det er på grund af to årsager:
- Forbindelsen er lukket efter udførelse af første
PreparedStatement getconbruger eninstancevariabel i stedet forlocalvariabel. På grund af dette, sammeconnvariabel (den der blev lukket tidligere) returneres nårgetconkaldes næste gang.
For at rette dette, getcon og DBConnect skal ændres for at erklære en lokal conn variabel og returner den (faktisk behøver du ikke DBConnect overhovedet), f.eks.:
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);
}
}