0

入力を数えてデータベースのデータフィールドと照合し、ステータスを数えて、入力が借りた本の数を表示しようとしています。

        Statement statement = conn.createStatement();

        String sql = "SELECT COUNT(jtfMemberID.getText()) as num FROM LOAN WHERE LOAN_STATUS='BORROWED'";

        ResultSet rs1 = statement.executeQuery(sql); 
        int personCount = 0; 

        if(rs1.next()) { 
            personCount = rs1.getInt("num");
            jlbBookBorrow.setText(rs1.getString(personCount));
        }else{
            jlbBookBorrow.setText("0");
        }
4

1 に答える 1

0

テキストjtfMemberID.getText()はあなたので文字通り解釈されますSQL String。あなたはそれを抽出する必要があります:

String sql = "SELECT COUNT(" + jtfMemberID.getText() + ") as num FROM LOAN WHERE LOAN_STATUS='BORROWED'";

また、 SQLインジェクション攻撃から保護するために、PreparedStatementの使用を検討してください。

于 2013-03-03T13:08:08.340 に答える