ResultSet从查询转换为int

时间:2011-07-24 23:11:08

标签: java sql java-ee resultset

所以我试图从sql查询中获取结果,如下所示

ResultSet rs = st.executeQuery("SELECT count(employeeID) FROM employee WHERE " +
                "employeeID='"+_empID+"' AND password = '"+_password + "'");

所以我也试图将该值转换为int,我尝试了下面的

 for (; rs.next();) {
val =  (Integer) rs.getObject(1);
}

我也试过

val = Integer.parseInt(rs.getObject(1));

但我没有得到以下错误

java.lang.Long无法强制转换为java.lang.Integer

我怎么能这样做..所以如果它返回0,3或4它变成一个整数?

谢谢

编辑:(仍然出现错误)

    long countLong = 0; 

        for (; rs.next();) {
           countLong = rs.getLong(1);
        }


       if(countLong < 1)
       {
         isAuthentic = false;
       }
       else
       {
         isAuthentic = true;
       }

4 个答案:

答案 0 :(得分:9)

当您不确定完全数字类型时,使用的一个好方法是将其强制转换为所有数字类型Number的父类:

val =  ((Number) rs.getObject(1)).intValue();

这适用于所有数字类型,例如floatlongint等。

答案 1 :(得分:1)

使用ResultSet.getLong方法:

long countLong = resultSet.getLong(1);
//if you really want and you are sure that it fits you can now cast
int count = (int)countLong; 

答案 2 :(得分:0)

尝试使用getString(),然后使用Long.parseLong()。

答案 3 :(得分:0)

将其转换为字符串,然后转换为int或long或任何您想要的内容:

Integer.parseInt(rs.getObject(1).toString());