用于插入列表的jdbcTemplate.batchUpdate不起作用

时间:2016-05-22 17:54:30

标签: spring spring-mvc jdbctemplate

我没有神经细胞,我真的需要你的帮助。

出于某种原因,我无法获得插入数据库的答案列表

我使用jdbcTemplate来做到这一点,我的代码看起来像这样

public void insertVastaukset(List<Vastaus> vastaukset) {
    final String sql = "insert into vastaus (kysymysID, vastausteksti) values(?,?)";
    getJdbcTemplate().batchUpdate(sql,
            new BatchPreparedStatementSetter() {
                @Override
                public void setValues(PreparedStatement ps, int i)
                        throws SQLException {
                    Vastaus vastaus = vastaukset.get(i);
                    ps.setInt(1, vastaus.getKysymysID());
                    ps.setString(2, vastaus.getVastausteksti());

                }

                @Override
                public int getBatchSize() {
                    return vastaukset.size();
                }
            });}

由于某种原因,该程序没有错误!当我几天前尝试它时,它给了我空指针,但现在它固定但仍然没有插入创建到数据库中。请帮帮我,非常感谢你!

1 个答案:

答案 0 :(得分:0)

使用下面的catch块来检查异常

    int[] updateCounts;
    try {
        updateCounts = getJdbcTemplate().batchUpdate("insert into test123 (id, value) values (?,?)",
                new BatchPreparedStatementSetter() {

                //// YOUR CODE HERE

                });               
    }
     catch (Exception sqle) {
        Throwable s2 = sqle;
        System.out.println("=============v"+s2.getClass().getName()+"=====================");
        while (s2!=null) {
            s2.printStackTrace();
            s2 = s2.getCause();
            if(s2 instanceof java.sql.BatchUpdateException) {
                System.out.println("======================^^^^^^======================");
                ((java.sql.BatchUpdateException) s2).getNextException().printStackTrace();
            }
        }
        throw sqle;
    }