これには2つの理由があります:
- 最初の
PreparedStatement
の実行後、接続が閉じられます -
getcon
instance
を使用しますlocal
の代わりに変数 変数。このため、同じconn
変数(以前に閉じられたもの)は、getcon
のときに返されます 次回は呼び出されます。
これを修正するには、getcon
およびDBConnect
ローカルのconn
を宣言するように変更する必要があります 変数を返します(実際、DBConnect
は必要ありません まったく)、例:
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);
}
}