Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在java中使用batchupdate基于表id的增量序列?_Java_Jdbctemplate - Fatal编程技术网

是否可以在java中使用batchupdate基于表id的增量序列?

是否可以在java中使用batchupdate基于表id的增量序列?,java,jdbctemplate,Java,Jdbctemplate,我正在使用jdbc模板的batchUpdate。我想根据表id增加一个表列。我正在使用下面的代码,但得到异常 String sql = "INSERT INTO TEMP (Table_Id, STATUS, VERSION,Name) " + "VALUES (?, ?, SELECT (VERSION+1) FROM (SELECT VERSION, Table_Id, MAX(VERSION) OVER(PARTITION BY Table_Id)

我正在使用jdbc模板的
batchUpdate
。我想根据表id增加一个表列。我正在使用下面的代码,但得到异常

 String sql = "INSERT INTO TEMP (Table_Id, STATUS, VERSION,Name) " +
                    "VALUES (?, ?, SELECT (VERSION+1) FROM (SELECT VERSION, Table_Id, MAX(VERSION) OVER(PARTITION BY Table_Id) MAX_V FROM TEMP ) WHERE Table_Id = ? AND VERSION = MAX_V, ?)";

    getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter() {
      @Override
      public void setValues(PreparedStatement ps, int i){
      try {
         TDetails customer = chngCustStus.get(i);
         ps.setInt(1, customer.getTableId());
         ps.setInt(1, customer.getStatus());
         ps.setInt(1, customer.getTableId());
         ps.setInt(1, customer.getName());
      } catch (SQLException e) {
         //TODO Auto-generated catch block
         e.printStackTrace();
      }
    }

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

我认为getJdbcTemplate().batchUpdate不可能增量序列生成,因为一旦total insert list准备好作为批处理文件,然后连接到数据库,所以在连接之前不可能增量序列。

如果出现异常,请添加stacktrace。是,我遇到了一个异常。这样有什么解决方案吗?为什么不添加stacktrace。