Java在sql中搜索特定名称

时间:2011-05-19 10:33:18

标签: java sql

    public void pretraga_vina(){
    out.println("Enter name of wine you want to search:");
    Scanner upis=new Scanner(ulaz);
    String odabir=upis.nextLine();


    Statement statement;
    try{
        statement = connect.createStatement();
        String upit="SELECT * FROM wine WHERE wine_name LIKE ?";
        PreparedStatement prepared = connect.prepareStatement(upit);

        prepared.setString(1, odabir);
        out.println(prepared.toString());
        ResultSet resultSet = prepared.executeQuery();

        while(resultSet.next()){
            out.println(resultSet.getString("wine_name")+", "+resultSet.getInt("year"));
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }

问题是,当我输入葡萄酒名称时,我没有得到任何回复。你能救我吗?

4 个答案:

答案 0 :(得分:0)

您桌上的葡萄酒名称是否与您要搜索的内容相符?另外,请确保您想要附加部分匹配(而不是完全匹配),并添加“%”字符,因此"wine_name"变为"%wine_name%"

答案 1 :(得分:0)

如果您使用SQL LIKE查询,请务必在用户输入之前,之后或两侧添加%个字符。

prepared.setString(1, "'%" + odabir + "%'");

答案 2 :(得分:0)

SQL like函数应该以“%”作为前缀或后缀,例如:

SELECT * FROM suppliersWHERE supplier_name like '%bob%';

所以请更正查询。

答案 3 :(得分:0)

prepared.setString(1,“%” + searchTerm“%”);