Es por dos razones:
- La conexión se cierra después de la ejecución de la primera
PreparedStatement
getcon
utiliza unainstance
variable en lugar delocal
variable. Debido a esto, el mismoconn
variable (la que se cerró anteriormente) se devuelve cuandogetcon
se llama la próxima vez.
Para arreglar esto, getcon
y DBConnect
necesita ser modificado para declarar un conn
local variable y devolverlo (de hecho, no necesita DBConnect
en absoluto), por ejemplo:
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);
}
}