我在Java程序中使用嵌入式derby数据库。 我的数据库查询是:
"SELECT ID, NAME, MOBILE_NUMBER FROM CLIENTS2 WHERE CONTRACT_DATE <= ? AND BUILDING_ID = "+buildingId
我正在通过预备声明设定日期:
try {
PreparedStatement pStmt = con.prepareStatement(query);
pStmt.setDate(1, endSqlDate);
try (ResultSet rs = pStmt.executeQuery()) {
while(rs.next()){
FinancialInfoModule financialInfoObj = new FinancialInfoModule();
financialInfoObj.setClientId(rs.getInt("ID"));
financialInfoObj.setMobileNumber(rs.getInt("MOBILE_NUMBER"));
financialInfoObj.setClientName(rs.getString("NAME"));
getClientFinancialInfo(financialInfoObj, startSqlDate,
endSqlDate);
if(financialInfoObj.isMeetingTheNeed()){
financialInfoList.add(financialInfoObj);
}
}
}
} catch (SQLException ex) {
Logger.getLogger(ReportsUtility.class.getName())
.log(Level.SEVERE, null, ex);
}
但每次我收到此错误:
java.sql.SQLSyntaxErrorException:语法错误:遇到&#34; WHERE&#34;在 第1行,第61栏 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知 来源)at org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知来源) 在 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(未知 来源)at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(未知 来源)at org.apache.derby.impl.jdbc.EmbedConnection.handleException(未知 来源)at org.apache.derby.impl.jdbc.ConnectionChild.handleException(未知 来源)at org.apache.derby.impl.jdbc.EmbedPreparedStatement。(未知 源)
有没有人知道发生了什么?