JDBC 中的结果集搜索错误



所以我是JDBC - SQL编程的初学者。我需要一点建议,这很可能是关于语法的。

所以,问题=我正在尝试搜索记录中具有名称(函数参数中提供的字符串)的记录。以下是我的代码。现在,我设计了此代码,以便可以有多个具有相同名称的记录,因此将打印所有这些记录的数据(通过 ShowData() 函数)。

protected static void SearchbyName (String toCompareName)
{
    Statement stmt = null;
    ResultSet rs = null;
    Connection conn = null;
    boolean flag = false;     //to confirm if record has found atleast once
    try
    {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(url, username, password);    
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT idEmployee FROM employee WHERE name = ' "+toCompareName+" ' ");
        if( !(rs.next()) )    //if ResultSet is not empty
        {   
            while(rs.next())  //reading all records with the same name, extracted by Query
            {
                int foundID = rs.getInt("idEmployee");  //extracting ID of found record
                ShowRecord(foundID);        //prints record of foundID fromDB
                flag = true; //set flag
            }
        }
        if(flag==false) //if no record found
        {
            JOptionPane.showMessageDialog(null, "ERROR:: No Records Found..", "Not Found", JOptionPane.ERROR_MESSAGE);
        }
        //close connection
        if(rs!=null)
        {   rs.close();     }
        if(stmt!=null)
        {   stmt.close();   }
        if(conn!=null)
        {   conn.close();       }
    }
    catch(SQLException e)
    {   System.err.println(e);  }
    catch(Exception e)
    {   System.err.println(e);  }   
}

所以它来了。据我了解,RESULTSET rs 或我正在执行的查询存在一些问题。请帮忙。如果你能提出更好的搜索方法,当然请。我将在相同的模式上再编写 4 个函数 SearchbyAge、SearchbyQualification、SearchbySpecialization

只要这样就足够了

 while(rs.next())  //reading all records with the same name, extracted by Query
            {
                int foundID = rs.getInt("idEmployee");  //extracting ID of found record
                ShowRecord(foundID);        //prints record of foundID fromDB
                flag = true; //set flag
            }

您不必以这种方式检查结果集中的数据,使用if案例

if( !(rs.next()) ) 

这将移动到resultset中的下一条记录

SOVLED

我的错误在查询中。我在我正在比较的字符串语法中放置空格。

错误 = '"(..其中名称 = " ' +比较名称+ '" ");

= '"(.其中名称 = "'+比较名称+'" ");

就是这样。希望对其他人有帮助。:)

相关内容

  • 没有找到相关文章

最新更新