JDBCSQL语句在java程序中接收数据

JDBCSQL语句在java程序中接收数据,java,Java,我使用了不带if语句的rs.next()。这是正确的吗?我的程序在运行时卡住了。我怀疑原因是使用rs.next()时没有“if”。请帮自己一个忙,用while循环或至少一个条件来阅读结果集,即使您99,9%确定始终返回一行: String sql2="SELECT rates from room_type a,rooms b ,reservation r where a.type=b.type AND b.room_no=r.room_no AND r.cus_id='"+Cusid+"' gr

我使用了不带if语句的rs.next()。这是正确的吗?我的程序在运行时卡住了。我怀疑原因是使用rs.next()时没有“if”。

请帮自己一个忙,用while循环或至少一个条件来阅读结果集,即使您99,9%确定始终返回一行:

String sql2="SELECT rates from room_type a,rooms b ,reservation r where a.type=b.type AND b.room_no=r.room_no AND r.cus_id='"+Cusid+"' group by r.cus_id";
pst=conn.prepareStatement(sql2);
rs=pst.executeQuery();
rs.next();
double roomRates = Double.parseDouble(rs.getString("rates"));

请帮自己一个忙,使用while循环或至少一个条件读取结果集,即使您99,9%确定始终会返回一行:

String sql2="SELECT rates from room_type a,rooms b ,reservation r where a.type=b.type AND b.room_no=r.room_no AND r.cus_id='"+Cusid+"' group by r.cus_id";
pst=conn.prepareStatement(sql2);
rs=pst.executeQuery();
rs.next();
double roomRates = Double.parseDouble(rs.getString("rates"));

您确定您的RS将始终至少包含一行吗?在尝试读取数据之前,您应该检查是否有要读取的行。原因不是
if
while
,但确定是否有返回的行或何时到达末尾非常有用。如果应该有一行但没有,您可以抛出一个异常或采取其他步骤来解决它。
Double.parseDouble(rs.getString(“rates”)
应替换为
rs.getDouble(“rates”)
将一个数字转换为一个字符串,仅仅将其转换回一个数字是没有意义的。您确定您的rs始终至少包含一行吗?在尝试读取数据之前,您应该检查是否有要读取的行。原因不是
if
while
,但确定是否有返回的行或何时到达末尾非常有用。如果应该有一行但没有,您可以抛出一个异常或采取其他步骤来解决它。
Double.parseDouble(rs.getString(“rates”)
应替换为
rs.getDouble(“rates”)
将数字转换为字符串只是将其转换回数字是没有意义的