2
我正在使用JDBI將一些數據插入到具有自動增量主鍵的mysql表中。我用索引來做插入。代碼如下所示:JDBI插入問題
public void insertWorkout(String[] values) {
String insertString = "insert into workouts(<column_names>) values(:0,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25,:26,:27,:28,:29,:30,:31)";
Update pUpdate = handle.createStatement(insertString);
for(int i=0; i<vals.length;i++) {
pUpdate.bind(i, vals[i]);
}
pUpdate.execute();
}
這已經一段時間了,因爲values[]
做工精細總是正確的數量(32)和參數以相同的順序總是。現在雖然它將不得不處理通過一個更小的數組(18,19或20),並仍然正確插入;最後14個左右的參數可以是空的或空白的。值的順序仍然是靜態的(即,如果傳遞18列,它是表中的前18列),並且最後的20列全是int(11)
列。
現在,當它通過一個小於32陣列它提供了這樣的錯誤:
org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: Unable to execute, no named parameter matches "20" and no positional param for place 20 (which is 21 in the JDBC 'start at 1' scheme) has been set.
什麼是解決它的最好方法?