代码之家  ›  专栏  ›  技术社区  ›  Thomas Decaux

使用springjdbctemplate更新ResultSet

  •  0
  • Thomas Decaux  · 技术社区  · 5 年前

    Spring boot 1.5.8.RELEASE org.springframework.jdbc.core.JdbcTemplate 我想询问 SELECT id, name FROM user ,然后在迭代所有结果时更新。

    PreparedStatement stmt = conn.prepareStatement(sql,
          ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery();
    ...
    rs.updateString("name", "toto");
    ...
    

    但是如何使用springjdbctemplate类(查询方法)做到这一点呢?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Thomas Decaux    5 年前

    感谢@JB Nizet:

    jdbcTemplate.query(new PreparedStatementCreator() {
                @Override
                public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                    return con.prepareStatement("SELECT id, slug FROM user", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
                }
            }, new ResultSetExtractor<Void>() {
                @Override
                public Void extractData(ResultSet rs) throws SQLException, DataAccessException {
    
                    while (rs.next()) {
    
                            rs.updateString("slug", artistSlug);
    
                    }
    
                    return null;
                }
            });