日記#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との差が分からず終了。

この記事が気に入ったらサポートをしてみませんか?