亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復:“參數索引超出范圍(2 > 參數數量,即 1)。”

如何修復:“參數索引超出范圍(2 > 參數數量,即 1)。”

largeQ 2023-08-23 14:58:24
如果我嘗試通過 Java (jdbc) 從 mySql 數據庫獲取時間戳(日期對象),我會收到錯誤:“參數索引超出范圍(2 > 參數數量,即 1)?!蔽以诨ヂ摼W上找不到適合我的解決方案,因為(我認為)sql 查詢是正確的,并且我放置了確切數量的“?” 需要。PreparedStatement st = conn.prepareStatement("SELECT * FROM timestamp WHERE stampTime BETWEEN '?/0/? 00:00:00.00' AND '?/31/? 23:59:59.999' AND userid = ? ");            st.setInt(1, month);            st.setInt(2, year); //It crashes here            st.setInt(3, month);            st.setInt(4, year);            st.setInt(5, uId);            ResultSet rs = st.executeQuery();我希望準備并執行該語句,但收到錯誤“參數索引超出范圍(2 > 參數數量,即 1)”。
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

當問號?是字符串文字的一部分時,不會將其解釋為參數指示符。這就是為什么里面的問號'?/0/? 00:00:00.00''?/31/? 23:59:59.999'不被算作準備好的語句的參數;只計算?內部userid = ?,因為它是唯一“露天”的。

您可以通過在 Java 程序中構造范圍的結束日期并將它們綁定到stampTime BETWEEN ? AND ?條件內的參數來解決此問題。


查看完整回答
反對 回復 2023-08-23
  • 1 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號