Det er på grund af to årsager:
- Forbindelsen er lukket efter udførelse af første
PreparedStatement
getcon
bruger eninstance
variabel i stedet forlocal
variabel. På grund af dette, sammeconn
variabel (den der blev lukket tidligere) returneres nårgetcon
kaldes 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);
}
}