Java 如何搜索数据库以验证其存在?

Java 如何搜索数据库以验证其存在?,java,sql,user-interface,derby,Java,Sql,User Interface,Derby,我一直在为这个类使用java数据库,我只是想搜索一下,看看是否存在与用户输入同名的条目。它过去是有效的,但对一些人来说,它一直说它不存在于数据库中,即使它存在。如果有人能给我一个解决方案,我将不胜感激 private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) { name = txtSearch.getText();

我一直在为这个类使用java数据库,我只是想搜索一下,看看是否存在与用户输入同名的条目。它过去是有效的,但对一些人来说,它一直说它不存在于数据库中,即使它存在。如果有人能给我一个解决方案,我将不胜感激

  private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {                                          
    name = txtSearch.getText();
    sr.setSearch(name);

    try {
        String url = "jdbc:derby://localhost:1527/Cookbook";
        Connection conn = DriverManager.getConnection(url);
        String sql = "SELECT * from RECIPES where NAME = ?";
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1, name);
        ResultSet rs = pst.executeQuery();
        boolean found = false;

        while (rs.next()) {
            if (rs.getString(1).equalsIgnoreCase(name)) {
                JOptionPane.showMessageDialog(null, "Found " + name);
                found = true;                 
                break;

            }

        }

        if (found) {
            this.dispose();
            modifyingRecipe m = new modifyingRecipe();
            m.setVisible(true);

        } else {
            JOptionPane.showMessageDialog(null, "Item Not Found!");
        }

    } catch (SQLException ex) {
        Logger.getLogger(CookbookApp.class.getName()).log(Level.SEVERE, null, ex);
    }

}  

请提供一些有效和无效的示例。请提供完整的stacktrace。也许这可以回答您的问题:如果您只需要一个特定字段,为什么要执行
select*
?无论性能如何,如果不在select中指定字段,则数据库返回字段的顺序可能会有所不同(出于任何原因)。在这种情况下,
getString(1)
不会引用名称,而是引用其他字段。我看到您在代码中执行了
equalsIgnoreCase
,但在select语句中也执行了
where name=?
。select中的where子句将执行区分大小写的搜索,因此如果希望查询匹配忽略大小写,则需要另一种方法。