Het heeft twee redenen:
- De verbinding wordt verbroken na de uitvoering van de eerste
PreparedStatement
getcon
gebruikt eeninstance
variabele in plaats vanlocal
variabel. Hierdoor is dezelfdeconn
variabele (degene die eerder gesloten was) wordt geretourneerd wanneergetcon
wordt de volgende keer gebeld.
Om dit op te lossen, getcon
en DBConnect
moet worden aangepast om een lokale conn
. te declareren variabele en retourneer deze (in feite heeft u DBConnect
niet nodig helemaal niet), bijv.:
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);
}
}