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();
}
}
问题是,当我输入葡萄酒名称时,我没有得到任何回复。你能救我吗?
答案 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“%”);