V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cstj0505
V2EX  ›  Java

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

  •  
  •   cstj0505 · 2019-02-18 16:04:53 +08:00 · 1523 次点击
    这是一个创建于 2123 天前的主题,其中的信息可能已经有所发展或是发生改变。
          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 条回复    2019-03-01 13:23:57 +08:00
    lff0305
        1
    lff0305  
       2019-02-22 14:16:35 +08:00
    建议用查询条件来区分,
    没法区分的话建议直接用原生的 jdbc resultset 来控制,总之如果是一个大表的话这种对数据库服务器的压力肯定会很大,
    建议用多次查询每次小批量的数据
    cstj0505
        2
    cstj0505  
    OP
       2019-03-01 13:23:57 +08:00
    @lff0305 多谢,查询条件不受控制,最后通过主动抛异常来解决的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3179 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:46 · PVG 08:46 · LAX 16:46 · JFK 19:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.