Java 使用 LIKE SQL 语句时程序未定位所有关键字
Java Program not locating all keywords while using LIKE SQL statement
我正在构建一个应用程序,我正在尝试使用 PreparedStatements 来执行 SQL 查询。基本上,有一个搜索选项,我正在尝试在搜索框中使用 SQL LIKE 方法。名称取自搜索框并插入 PreparedStatement。
try {
PreparedStatement ps2 = con.prepareStatement("SELECT * FROM books WHERE book_name LIKE ? AND status=?");
ps2.setString(1, name2 + "%");
ps2.setString(2, stat);
ResultSet rs = ps2.executeQuery();
dt.setRowCount(0);
while (rs.next()) {
Object ob[] = {
rs.getString("book_name"),
rs.getString("book_author")
};
dt.addRow(ob);
}
} catch (Exception af) {
jLabel29.setText("No result Found !");
}
break;
其中 name2 是用户搜索的内容。但是,当我这样做时,程序仅在“book_name”列中的第一个单词与搜索项匹配时才给出输出。例如,对于一个句子“My name is Jack”,如果我输入“Jack”或“name”,则没有输出,但如果我输入“My”,则会检测到整行。
应该LIKE '%<searchString>%'
考虑通配符搜索的所有前后字符
换句话说,使用:
ps2.setString(1, "%" + name2 + "%");
我正在构建一个应用程序,我正在尝试使用 PreparedStatements 来执行 SQL 查询。基本上,有一个搜索选项,我正在尝试在搜索框中使用 SQL LIKE 方法。名称取自搜索框并插入 PreparedStatement。
try {
PreparedStatement ps2 = con.prepareStatement("SELECT * FROM books WHERE book_name LIKE ? AND status=?");
ps2.setString(1, name2 + "%");
ps2.setString(2, stat);
ResultSet rs = ps2.executeQuery();
dt.setRowCount(0);
while (rs.next()) {
Object ob[] = {
rs.getString("book_name"),
rs.getString("book_author")
};
dt.addRow(ob);
}
} catch (Exception af) {
jLabel29.setText("No result Found !");
}
break;
其中 name2 是用户搜索的内容。但是,当我这样做时,程序仅在“book_name”列中的第一个单词与搜索项匹配时才给出输出。例如,对于一个句子“My name is Jack”,如果我输入“Jack”或“name”,则没有输出,但如果我输入“My”,则会检测到整行。
应该LIKE '%<searchString>%'
考虑通配符搜索的所有前后字符
换句话说,使用:
ps2.setString(1, "%" + name2 + "%");