Itu karena dua alasan:
- Koneksi ditutup setelah eksekusi
PreparedStatement
pertama getcon
menggunakaninstance
variabel alih-alihlocal
variabel. Karena ini,conn
yang sama variabel (yang ditutup sebelumnya) dikembalikan ketikagetcon
dipanggil lain kali.
Untuk memperbaikinya, getcon
dan DBConnect
perlu dimodifikasi untuk mendeklarasikan conn
lokal variabel dan mengembalikannya (sebenarnya, Anda tidak perlu DBConnect
sama sekali), misalnya:
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);
}
}