当前光标位置的操作无效。 (Java数据库)

时间:2013-11-17 20:54:59

标签: java mysql database netbeans

我正在运行以下代码以从数据库中获取数据..

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编程的初学者。假设连接和所有其他事物都在类构造函数

中初始化

1 个答案:

答案 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 "";
}