註冊 | 登入 | 全文檢索 | 排行榜 |
![]() |
» JWorld@TW
» Java 新手區
![]() ![]() |
![]() ![]() ![]() ![]() |
本主題所含的標籤 |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
jimwayne
![]() ![]() ![]() ![]() ![]() ![]() 發文: 220 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() InsertDB Exception :java.sql.SQLException: Parameter index out of range (0 < 1 ). 錯誤訊息解讀~ 錯誤發生在 jdbcmysql2.java 的第 185 行 錯誤原因是因為 java.lang.ArrayIndexOutOfBoundsException,也就是指定的索引不合法 不合法的原因是 Parameter index out of range (0 < 1 ),即索引最小的允許值是 1,但程式給了 0。 ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
lasaka
![]() ![]() ![]() ![]() ![]() ![]() 發文: 32 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 10033, <87070,88069>,1 10036, <87070,88069>,1 逗點後面少了空格= = ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:lasaka] |
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 對耶 謝謝你! 但我修改完後錯誤依然存在 InsertDB Exception :java.sql.SQLException: Parameter index out of range (0 < 1 ). 我知道錯誤訊息是告訴我185行有問題 但是陣列不是都是從0開始嗎@@? 我不知道應該修改哪邊才對... ![]() ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
lasaka
![]() ![]() ![]() ![]() ![]() ![]() 發文: 32 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 就是..取陣列的時候超出範圍... 你檢查你的txt檔資料格式,是不是有些資料少了空格 ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
jimwayne
![]() ![]() ![]() ![]() ![]() ![]() 發文: 220 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() huangbb12345 wrote: 陣列是從 0 開始沒錯,但他出現的問題是 SQL 的問題,並不是原生的陣列問題 而錯誤訊息已經明確說明了索引必須從 1 開始。 例如用 JDBC 使用 Prepare Statement 時,setString() 等方法的索引起始值是 1。 PS. 官方文件:http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setString(int, java.lang.String) 文件中可以看到如下的描述 parameterIndex - the first parameter is 1, the second is 2, ... ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:lasaka] |
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() txt檔空格我已經修改完了,但還是一樣錯誤 ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] | ||
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() huangbb12345 wrote: 我若將程式改成
他跑出來的結果lifetime和count皆正確(如下) Item Lifetime Count 1 <1,88069> 177 2 <1,88069> 266 3 <1,88069> 712 4 <79070,88069> 9 5 <1,88069> 423 6 <1,88069> 287 7 <1,88069> 136 8 <1,88069> 98 9 <1,88069> 387 10 <87070,88069> 1 11 <87070,88069> 1 12 <1,88069> 1102 13 <76070,88069> 12 14 <86070,88069> 2 15 <1,88069> 230 16 <1,88069> 156 17 <18070,88069> 70 但如果地84行註解去掉以後,他則又會出現錯誤 InsertDB Exception :java.sql.SQLException: Parameter index out of range (0 < 1 ). 所以感覺現在問題是在第86行不知道為什麼錯@@? 要如何改才能讓item欄位正確存進txt檔中的第一個欄位呢? ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] | ||
jimwayne
![]() ![]() ![]() ![]() ![]() ![]() 發文: 220 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() huangbb12345 wrote: 請把程式碼改成:
![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:jimwayne] | ||
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() jimwayne wrote: 我也改過,但錯誤就變成 InsertDB Exception :java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2). ![]() ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] | ||
jimwayne
![]() ![]() ![]() ![]() ![]() ![]() 發文: 220 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() huangbb12345 wrote: 那試試看:
![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
javaX
![]() ![]() ![]() ![]() ![]() ![]() 發文: 188 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 少了一個?號 ![]() ![]() 教育部:要如何保證畢業即就業 經濟部:所以公司都是我開的 財政部:發前單位請不要幻想能春風化雨 行政院:為什麼該單位發錢的時候都想去當老師 |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
alin
![]() ![]() ![]() ![]() ![]() ![]() 發文: 223 積分: 3 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() insertdbSQL 該SQL語法只有兩個 ?, 所以你設定 1,2,3 當然出錯 ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] | ||||
jimwayne
![]() ![]() ![]() ![]() ![]() ![]() 發文: 220 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() huangbb12345 wrote: 如果您是用中間改過的 SQL(如下)去執行的話...
就會如樓上大大所說,因為 SQL statement 裡面只有兩個問號,放三個參數當然會出錯....。 不過如果您是用開頭給的 SQL(如下)去執行
但還是出現這個問題的話,也許可以試試看調整參數的型別看看.... (count 在宣告時是 Integer 型別,使用 setString 的方法去插入有可能會有問題) ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:jimwayne] | ||||
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() jimwayne wrote: 我有試著改參數的type,但問題依然存在,還想不通到底應該改哪裡才能讓item存進DB...QQ ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
javaX
![]() ![]() ![]() ![]() ![]() ![]() 發文: 188 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() String[] dataAry = perLine.split(", "); ![]() ![]() 教育部:要如何保證畢業即就業 經濟部:所以公司都是我開的 財政部:發前單位請不要幻想能春風化雨 行政院:為什麼該單位發錢的時候都想去當老師 |
作者 | Re:如何修改(error:Parameter index out of range) [Re:huangbb12345] |
lasaka
![]() ![]() ![]() ![]() ![]() ![]() 發文: 32 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 用一開始的版本測試過是可以的,但是這句有錯: private String insertdbSQL = "insert into udp2(item,lifetime,count) VALUES(?,?,?) from udp2 "; 最後的 from udp2 拿掉八這是錯誤的語法 正確的 : insert into udp2(item,lifetime,count) VALUES(?,?,?) ![]() ![]() |
作者 | Re:如何修改(error:Parameter index out of range) [Re:lasaka] |
huangbb12345
![]() ![]() ![]() ![]() ![]() ![]() 發文: 19 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() lasaka wrote: 可以了!! 非常感謝各位的幫忙 ![]() ![]() ![]() |
» JWorld@TW » Java 新手區 |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |