今日はちょっとした話を(知ってる方にはつっこみどころ満載&つまらない話ですがそこはご勘弁を…)。
Webアプリケーション(サーバサイドJavaアプリケーション等)には欠かせないデータベース。こいつとサーバサイドJavaアプリケーションを繋いでくれる素敵なJavaでの技術を、JDBCといいます(余談ですがJDBCはJava Database Connectivity の略と思われがちですが、JavaSoft の資料にはJDBCはTrade Mark(商標)であって、Abbreviation(略語)ではないと書かれています)。

詳しい仕組みは省略しますが、JDBCのコーディングの中で非常に注意しなくてはならないのが、Connectionの処理です。仕事の合間に新人さんのコーディングを見ているとこんな感じになっていました。
try{
  Connection conn = getConnection();
  /* DBに対する処理 */
  conn.close();
}catch(SQLException e){
  //Exception Handling
}

これを見て、「まずいな」と多くの熟練Java開発者さんは思うでしょう(笑)せめてこんな感じにした方が良いだろうと思い、直してみました。
try{
  Connection conn = getConnection();
  /* DBに対する処理 */
  conn.commit();
}catch(SQLException e){
  conn.rollback();
  //Exception Handling
}finally{
  if(conn != null){
   try{
    conn.close();
   }catch(Exception e){
    //Exception Handling
   }
  }
}

やはり、例外処理は非常に注意しなくてはいけないと思うのです。特にDBとの連携処理を、ユーザ側からデータを受け行う場合は尚更です。処理を確定するか、元に戻した上で(commit/close)Connectionをcloseしてあげないと、DBはどんなデータを保存するか解らないのですから、慎重にならないといけません。

コンピューターは与えられた命令以外の事はこなせません。最近そんな当たり前の事にようやく気がついた今日この頃です。

コメント

お気に入り日記の更新

この日記について

日記内を検索