所以我试图从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;
}
答案 0 :(得分:9)
当您不确定完全数字类型时,使用的一个好方法是将其强制转换为所有数字类型Number
的父类:
val = ((Number) rs.getObject(1)).intValue();
这适用于所有数字类型,例如float
,long
,int
等。
答案 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());