JDBI를 사용하여 일부 데이터를 자동 증가 기본 키가있는 mysql 테이블에 삽입하고 있습니다. 삽입을하기 위해 색인을 사용했습니다. 코드는 다음과 같습니다 :이 잠시 때문에 values[]
을 위해 잘 작동하고있다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();
}
항상 정확한 수 (32)이고 인수는 같은 순서로 항상 있었다. 이제는 더 작은 배열 (18, 19, 또는 20)을 처리하고 여전히 삽입을 올바르게 처리해야합니다. 마지막 14 개 정도의 args는 비어 있거나 비어있을 수 있습니다. 값의 순서는 정적입니다 (즉, 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.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?