java.sql.SQLException: No value specified for parameter 2
一、問題提起
分析、内部ループはプリコンパイル(予備)文に値を割り当てる責任を負います.パラメータが1つしかない場合は、エラーは発生しません.2つのパラメータがある場合、2番目のパラメータがまだ来ていない場合と値が割り当てられている場合、文が実行されます.2番目のパラメータに値が割り当てられていないという問題が発生します
:
public static int batch(Connection connection, String sql, Object[][] params) {
try(Connection conn = connection){
PreparedStatement pstat = conn.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
for (int j = 0; j < params[i].length; j++) {
pstat.setObject(j + 1, params[i][j]);
//
pstat.executeUpdate();
}
//
pstat.executeUpdate();
}
} catch(SQLException e) {
e.printStackTrace();
}
return 0;
}
分析、内部ループはプリコンパイル(予備)文に値を割り当てる責任を負います.パラメータが1つしかない場合は、エラーは発生しません.2つのパラメータがある場合、2番目のパラメータがまだ来ていない場合と値が割り当てられている場合、文が実行されます.2番目のパラメータに値が割り当てられていないという問題が発生します