我正在尝试将 SQL 准备好的语句发送到 MySQL DB。这就是我所拥有的:
String sql1 = "SELECT idReimbursed_Funds As idReimFunds FROM reimbursedfunds Where ReimFundsName = ? AND Date = ?";
PreparedStatement pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, reimfund.getReimFundsName());
pstmt1.setDate(2, (Date) reimfund.getDate());
ResultSet rs1 = pstmt1.executeQuery(sql1);
while(rs1.next()){
idReimFunds = rs1.getInt("idReimFunds");
}
在谷歌搜索这个问题之后,我找到了在问号或整个 where 子句周围使用括号的解决方案,例如:
String sql1 = "SELECT idReimbursed_Funds As idReimFunds FROM reimbursedfunds Where (ReimFundsName = ?) AND (Date = ?)";
然而这并没有奏效。我收到与原始代码生成的相同错误消息:
“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '?) AND (Date = ?)' 附近使用正确的语法。
当我在 MySQL Workbench 中尝试 SQL 语句时工作正常。有没有办法在 JDBC 中使用 2 个 where 子句?我知道在其他帖子中人们已经回答它必须作为两个不同的查询发送,但我想我会问以防万一其他人阅读这篇文章并知道一种方式。谢谢!