【发布时间】:2021-03-18 22:46:36
【问题描述】:
我需要根据各种标准从 mysql 表中选择行,例如 Colour= Black 或 size= L。
代码在没有准备好的语句和问号的情况下工作,但是每当我尝试使用问号时,代码都不会运行。
我读过一些关于输入问号的内容,例如 \'?'//,但我不确定确切的格式。
String URL = "jdbc:mysql://localhost:3306/clothing";
String USERNAME = "root";
String PASSWORD = "password";
Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
Statement stmt = con.createStatement();
String sql= "SELECT * FROM clothing.Lostandfound WHERE Colour = ? AND Size = ?;";
ResultSet rs = stmt.executeQuery(sql);
PreparedStatement preparedStmt = con.prepareStatement(sql);
preparedStmt.setString(1, Data1);
preparedStmt.setString(2, Data2);
另外,Size 是用橙色写出来的,但是当我只使用这个 sql 字符串时也会发生错误
String sql= "SELECT * FROM clothing.Lostandfound WHERE Colour = ?;";
我查看了大约 20 个不同的答案,但没有发现任何有用的信息,因此在此先感谢您的帮助!
【问题讨论】:
-
您不必转义
?。您忘记包含实际的错误消息。然而问题就在这里:ResultSet rs = stmt.executeQuery(sql);。应该是ResultSet rs = stmt.executeQuery();。前者不是PreparedStatement的方法。继承自Statement;忽略语句准备步骤;并且不知道?。 -
@user207421 你为什么不回答你的评论,以便我们可以将此页面标记为已解决?