###前提・実現したいこと
Javaで住所録を作っています。
名字の最初の一文字であ行~わ行に分け、さらに「あ行○件、か行○件~」と件数の表示をしたいです。
###発生している問題
取得件数が0件となってしまいます。
どのようにしたら件数が正しく取得できるのか、お手数ですがご教示をお願いいたします。
###追記
どうやらSQLは正しい値をとれているようです。
問題は変数countKanaに格納できていないところにあるようです。
わかる方、どうかご回答をお願いいたします。
###情報
言語:Java
データベース:MySQL
userテーブル:
簡単ですがこんな感じに入っています。
+------------+---------+
| name | initial |
+------------+---------+
| 山田花子 | や |
| 鈴木一郎 | さ |
| | |
+------------+---------+
###ソースコード
public int countKana(String initial) throws SQLException, ClassNotFoundException { Connection con = null; PreparedStatement pStm = null; int countKana = -1; try { /* DB接続 */ Class.forName(bDAO.getDRIVER_NAME()); con = DriverManager.getConnection(bDAO.getJDBC_URL(), bDAO.getDB_USER(), bDAO.getDB_PASS()); /* SQL */ String sql = "SELECT COUNT(*) AS countKana FROM user WHERE user.initial = '" + initial + "'"; pStm = con.prepareStatement(sql); ResultSet rs = pStm.executeQuery(); while (rs.next()) { countKana = rs.getInt("countKana"); } } catch (Exception e) { e.printStackTrace(); throw new SQLException(e); } finally { if (pStm != null) { try { pStm.close(); } catch (Exception e) { e.printStackTrace(); throw new SQLException(e); } } if (con != null) { try { con.close(); } catch (Exception e) { e.printStackTrace(); throw new SQLException(e); } } } return countKana; }
回答8件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/28 12:47
2016/02/28 13:37 編集
2016/02/28 13:59
2016/02/28 14:48 編集
2016/02/28 14:57
2016/02/28 15:30
2016/02/28 15:36
2016/02/29 13:14
2016/02/29 14:35
2016/02/29 14:50 編集
2016/02/29 15:21
2016/03/01 13:09
2016/03/01 13:16
2016/03/01 13:27