为什么嵌入式Derby数据库不接受带日期的二元运算符?

时间:2018-05-29 21:00:31

标签: java jdbc derby

我在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。(未知   源)

有没有人知道发生了什么?

0 个答案:

没有答案