日記#770#771
#770 9月8日
今日はお掃除に時間かかって終了。
#771 9月9日
今日は改めてデータベースとJavaの接続で参考にしたサイトを見返してみたところ、なぜ接続が終了してしまうのか理由が分かった。
参考
参考にしたサイトにcloseの文字が見えて確信した。
自分のソースコードの中では下記の部分であった。
finally {
try {
// ④リソースを解放
// 例外が発生しても必ず実行されるfinallyブロックに
// nullだとcloseができないのでif文に入れている
// conとstmtは必ずラストにcloseしなければならない
if (stmt != null)
stmt.close();
if (con != null)
con.close();
System.out.println("接続終了!!!");
}
}
conがデータベースと接続している大本なのでここをcloseしてしまうことでデータベースとの接続も終了してしまっていたのだ。
コントローラー側での終了処理が分からない
メイン側でデータベースとの接続と接続解除を行うものの、コントローラー側に値の引き渡しができてないので「Ctrl:」の部分でnullとなっている。
Ctrl:null
com.mysql.cj.jdbc.ConnectionImpl@5a3e03ea
接続終了!!!
終了したよ。
そこから下記の参考より、メイン処理の終了処理でコントローラー側のデータベースとの接続終了処理を呼び出すことにした。
参考:
結果はこちら
接続完了!!!
~~省略~~
true
Ctrl:com.mysql.cj.jdbc.ConnectionImpl@3160a916
Ctrl + disconnectDB()発動!!!
null
com.mysql.cj.jdbc.ConnectionImpl@3160a916
リソース解放!!!
全て終了したよ。
Ctrl + disconnectDB()終了!!!おやすみ!!!
「Ctrl + disconnectDB()発動!!!」~「Ctrl + disconnectDB()終了!!!おやすみ!!!」の間が呼び出しを行っている部分。
その後、abortというものを見つけたのだが、まだcloseとの差が分からず終了。
この記事が気に入ったらサポートをしてみませんか?