現在、SQL文の発行によりデータベースアクセスを行うdaoクラスを作成中です。
このクラスの中に、ID自動採番を行うメソッド(呼び出し元に戻り値integer型のIDが代入された変数を返す)を作っているのですが、select文の問い合わせ結果をどのように変数に取得すればよいのかがわからず困っています。自分でこうではないかというソースコードを作成したのですが、何か違うような気もしています。
宜しければどうかご助力いただけませんでしょうか?
以下、該当メソッド部分のソースコードになります。
/* フィールド変数 */ private Connection con; // 接続オブジェクト private PreparedStatement ps; // ステートメント private ResultSet rs; // SELECT文の結果を受け取る /* param con 接続オブジェクト */ public Integer getId(Connection con){ /* SQL文を作成する */ StringBuilder sb = new StringBuilder(); sb.append("SELECT "); sb.append("MAX(ID) + 1 "); sb.append("AS ID "); sb.append("FROM "); sb.append("TABLE_LIST ");
//IDを格納する変数numを初期化
Integer num = 0;
try { // プリペアードステートメントを生成する ps= con.prepareStatement(sb.toString()); // SQL文発行 rs = ps. executeQuery(); num = rs.getInt("ID"); //"ID"という文字列から果たして結果が取得できるのでしょうか? }catch(Exception e){ e.printStackTrace(); }finally{ try{ // 後処理を行う if(ps!=null) ps.close(); if(ps!=null) ps.close(); if(con!=null) con.close(); }catch(SQLException e){ e.printStackTrace(); } }
//呼び出し元へ返す
return num;
}
以上になります。
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。