我正在运行以下代码以从数据库中获取数据..
public String getCurrentSeason(String leagueName)
{
String qry = "Select * from KHAN.LeagueSeason where league_name = '"+leagueName+"' AND end_Date IS NULL";
try{
ResultSet rs = stmt.executeQuery(qry);
if(rs.next());
{
String s = rs.getString(1);
return s;
}
}
catch(SQLException err)
{
System.out.println(err.getMessage());
System.exit(0);
}
return "";
}
虽然我正在使用rs.next()但仍会出现错误“当前光标位置的无效操作。”。有人可以指出错误。我是java编程的初学者。假设连接和所有其他事物都在类构造函数
中初始化答案 0 :(得分:1)
如果你提供一个不存在的leagueName
作为参数,就会发生这种情况。
问题是if语句后面的分号 - 因为空语句在Java中是合法的,你实际上实现了以下逻辑:如果ResultSet
有另一个元素,则什么也不做。之后,无论你是否做了什么(当然这都是毫无意义的),你打开另一个块,并尝试从ResultSet
中检索一个字符串。如果它是空的,你会得到你描述的错误。
长话短说 - 在if
之后丢失分号,你应该没问题:
public String getCurrentSeason(String leagueName)
{
String qry = "Select * from KHAN.LeagueSeason where league_name = '"+leagueName+"' AND end_Date IS NULL";
try{
ResultSet rs = stmt.executeQuery(qry);
if(rs.next()) // note: no semicolon here
{
String s = rs.getString(1);
return s;
}
}
catch(SQLException err)
{
System.out.println(err.getMessage());
System.exit(0);
}
return "";
}