gpt4 book ai didi

java - MySQL命令: Search for sub-string in database -- return matches (Java)

转载 作者:行者123 更新时间:2023-11-29 10:04:10 25 4
gpt4 key购买 nike

// Use case 1.

String authorName = "Wei She";

String query = "SELECT * FROM articles WHERE authors LIKE %?%";

PreparedStatement getAuthors = newConn.prepareStatement(query);
getAuthors.setString(1, authorName);
ResultSet resultSet = getAuthors.executeQuery();

while (resultSet.next()) {
String authors = resultSet.getString("authors");
System.out.println(authors);
}

这是我的代码的一个子集。数据已经在我本地的 MySQL 数据库中。其余的连接代码已存在。

我的问题是:我应该如何格式化 Java 代码中的 %?% 部分?我有什么遗漏的吗?这是错误输出。

Exception in thread "main" java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/%'Wei She'/%' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:975)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1025)
at src.TestSQLQuery.main(TestSQLQuery.java:34)

我在 MySQL Workbench 中使用了类似的查询:SELECT * FROM posts WHEREauthors LIKE '%Wei She%';

上述查询在 Workbench 中运行良好,并返回其他作者以及“Wei She”的多个条目。

最佳答案

%?% 无效。您只需使用 ? 并将值中的 % 符号传递给 PreparedStatement:

String query = "SELECT * FROM articles WHERE authors LIKE ?";

PreparedStatement getAuthors = newConn.prepareStatement(query);
getAuthors.setString(1, "%" + authorName + "%");

关于java - MySQL命令: Search for sub-string in database -- return matches (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com