Je to ze dvou důvodů:
- Spojení je uzavřeno po provedení prvního
PreparedStatement
getcon
používáinstance
proměnná namístolocal
proměnná. Díky tomu stejnéconn
proměnná (ta, která byla uzavřena dříve) se vrátí, kdyžgetcon
se volá příště.
Chcete-li to opravit, getcon
a DBConnect
je třeba upravit, aby bylo možné deklarovat místní conn
proměnnou a vraťte ji (ve skutečnosti nepotřebujete DBConnect
vůbec), např.:
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);
}
}