代码之家  ›  专栏  ›  技术社区  ›  CHARAFI Saad

JAVA 8:行映射器

  •  1
  • CHARAFI Saad  · 技术社区  · 6 年前

    我的请求如下所示

    SELECT  SUM(quantity) FROM table1 t1 
    WHERE    t1.x = 723834 AND      t1.y = 0  
    UNION ALL
      SELECT  SUM(quantity2) FROM table t2 
      WHERE    t2.x = 723834 AND      t2.y > 0  
      UNION ALL
       SELECT  nombre FROM table3 
       WHERE  rownum=1 
    

    当我在GUI上查看查询结果时,是这样的:

    SUM(quantity)
    20    
    4
    30
    

        public Transit mapRow(ResultSet rs, int rowNum) throws SQLException {
            Double ql=rs.getDouble(1);
            rs.next();
            Double qe=rs.getDouble(1);
            rs.next();
            return Transit.builder().qteLivree(ql).qteExpediee(qe)
                .nombreJoursOuvrables(rs.getInt(1))
                .build();
    }
    

    另外,我想知道有没有其他方法可以检索而不使用下一个()凭什么我得不到好的价值观

    1 回复  |  直到 6 年前
        1
  •  2
  •   JB Nizet    6 年前

    使用 a ResultSetExtractor .

    结果集的行,Spring负责为每个返回的行调用它。由于要在单个Transit对象中转换结果集的多行,因此应该使用 ResultSetExtractor