JDBCTemplate:如果ID不存在,则更新或插入

时间:2014-02-04 10:27:24

标签: java spring jdbctemplate

请参阅下面我用于更新表格中字段的方法,
现在我有条件,如果表中存在Id,则更新相对字段,否则在表中插入新记录。

  1. 如果ID存在则更新

  2. 如果表

  3. 中不存在id,请插入新记录

    有没有办法通过批量更新来实现这一目标,这样可以满足这两个条件或任何其他方式,因为我必须完全处理数百行。

    public void updateTable(List<TestClass> testList){
    
    String UPDATE_ITEM_ARTICLENO = "UPDATE itemTable SET articleno=? WHERE itemId=?";
    
    jdbcTemplate.batchUpdate(UPDATE_ITEM_ARTICLENO, new BatchPreparedStatementSetter() {         
        @Override
        public void setValues(PreparedStatement ps, int i) throws SQLException {
            TestClass article = testList.get(i);            
            ps.setString(1, article.getItemId());
            ps.setString(2, article.getArticleno());            
        }        
        @Override
        public int getBatchSize() {
            return testList.size();
        }
      });
     }
    

1 个答案:

答案 0 :(得分:0)

有一个标准的Merge (SQL)声明。但并非所有RDBMS都支持它。其中一些人有其他选择。