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。救命啊!
答案 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+"'"
您错误地解释了行数将是您要查找的计数。