jdbcTemplateObject.batchUpdate() löste eine TransientDataAccessResourceException-Ausnahme aus, der Parameterindex lag außerhalb des gültigen Bereichs (4 > 3)
Mit Java 1.8
和Spring Framework 4.0.3-RELEASE
versuche ich, eine Zeile in eine MySQL-Datenbank einzufügen, nachdem ich einen Wert von einer externen Quelle erhalten habe.
Versuchen Sie Folgendes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | private static JdbcTemplate jdbcTemplateObject = null;
private static final String INSERT_QUERY = "insert into order_table(id,order_id,created_time,updated_time)VALUES(?,?,now(),now())" ;
parseFeedAndStoreIntoDB() {
List<Object[]> insertData = new ArrayList<>();
SqlRowSet sqlRowSet = null;
insertData.add( new Object[] {id, order_id, created_time, updated_time});
if (insertData.size() > 0) {
jdbcTemplateObject.batchUpdate(INSERT_QUERY, insertData);
}
}
|
Wenn ich diese Methode ausführe, erhalte ich die folgende Ausnahme:
1 2 3 4 | Exception in parseFeedAndStoreIntoDB() method
org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL
[insert into order_table(id,order_id,created_time,updated_time)VALUES(?,?,now(), now());]; Parameter index out of range (4 > 3).; nested exception is java.sql.SQLException:
Parameter index out of range (4 > 3).
|
Ich habe die Anzahl der Zeilen gezählt, es gibt 4 Zeilen sowohl in meinem Java-Code als auch in der MySQL-Datenbanktabelle, die ich erstellt habe.