jdbcTemplateObject.batchUpdate() löste eine TransientDataAccessResourceException-Ausnahme aus, der Parameterindex lag außerhalb des gültigen Bereichs (4 > 3)
P粉256487077
P粉256487077 2023-09-12 19:32:31
0
1
409

Mit Java 1.8Spring 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:

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;

    // id, order_id, created_time, updated_time有值
    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:

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.

P粉256487077
P粉256487077

Antworte allen(1)
P粉647504283

您的查询在idorder_id上有绑定参数,其他两个字段在查询中设置为now()。将

insertData.add(new Object[] {id, order_id, created_time, updated_time});

改为

insertData.add(new Object[] {id, order_id});

或者

private static final String INSERT_QUERY = "insert into "
        + "order_table(id,order_id,created_time,updated_time) "
        + "VALUES(?,?,now(),now())";

改为

private static final String INSERT_QUERY = "insert into "
        + "order_table(id,order_id,created_time,updated_time) "
        + "VALUES(?,?,?,?)";
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!