使用Java 1.8
和Spring Framework 4.0.3-RELEASE
,我試著從外部來源取得值後將一行插入到MySQL資料庫。
嘗試這樣做:
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); } }
當我執行這個方法時,我得到以下例外:
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).
我已經計算了行數,我的Java程式碼和我建立的MySQL資料庫表中都有4行。
您的查詢在
id
和order_id
上有綁定參數,其他兩個欄位在查詢中設定為now()
。將改為
或將
改為