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 + "%");