cstj0505
V2EX  ›  Java

求教 jdbctemplate 的 rowmapper 处理如何提前结束

  •  
  •   cstj0505 · Feb 18, 2019 · 2008 views
    This topic created in 2640 days ago, the information mentioned may be changed or developed.
          jdbcTemplate.query(query,
              new RowMapper<Object>() {
                @Override
                public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                  String data = Utils.ResultSettoString(rs);
                  kafkaTemplate.send(kafkaTopic, tableName, data);
                  return true;
                }
              });
    

    代码如上,对于查询到的每条数据转换以后发出去,但是有时候有些表比较大,执行时间长,可能需要中断什么的,这时候该怎么中断 rowmapper 的整个处理。

    2 replies    2019-03-01 13:23:57 +08:00
    lff0305
        1
    lff0305  
       Feb 22, 2019
    建议用查询条件来区分,
    没法区分的话建议直接用原生的 jdbc resultset 来控制,总之如果是一个大表的话这种对数据库服务器的压力肯定会很大,
    建议用多次查询每次小批量的数据
    cstj0505
        2
    cstj0505  
    OP
       Mar 1, 2019
    @lff0305 多谢,查询条件不受控制,最后通过主动抛异常来解决的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3731 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 04:29 · PVG 12:29 · LAX 21:29 · JFK 00:29
    ♥ Do have faith in what you're doing.