计算从mysql数据库中检索的行数

时间:2013-02-01 10:59:43

标签: java mysql database row

public int countBookings() throws SQLException{

    ResultSet rs=null;
    PMDBController db=new PMDBController();
    int rowCount=0;

    db.getConnection();

    String dbQuery="SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'";

    rs=db.readRequest(dbQuery);

    try{
        if(rs.next()){
            instructorId=rs.getString("UserCount");
        }
    }catch(Exception e){
        e.printStackTrace();
    }

    rs.last();
    rowCount=rs.getRow();
    db.terminate();

    return rowCount;
}

基本上这个方法应该做的是计算从数据库中获取的行数。但是,无论内部是什么,它总是返回1。救命啊!

3 个答案:

答案 0 :(得分:1)

您的查询中似乎有问题。由于您只选择1个用户,因此您将始终获得1个计数。

"SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'"

尝试删除WHERE子句?也许这不是你想要的,但我们无法从一个查询中看到你的数据模型。

答案 1 :(得分:0)

rowCount = rs.getInt("UserCount");代替instructorId = rs.getString("UserCount");可以解决问题。或者换句话说---你读了行数但是读了变量instructorId。

答案 2 :(得分:0)

行数始终为1.这是计数,即您需要查看的行的值,因为您的查询旨在返回行数而不是实际行。

SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'"

您错误地解释了行数将是您要查找的计数。