首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA 8: RowMapper

JAVA 8: RowMapper
EN

Stack Overflow用户
提问于 2018-08-30 20:04:53
回答 1查看 189关注 0票数 1

我使用RowMapper将数据库表映射到java对象。

我的请求如下所示

代码语言:javascript
复制
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上的查询结果时,如下所示:

代码语言:javascript
复制
SUM(quantity)
20    
4
30

我的RowMapper的实现类似于:

代码语言:javascript
复制
    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();
}

另外,我还想知道是否还有其他方法可以通过没有接收到好的值而不使用rs.next()来检索

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-30 21:10:33

使用一个ResultSetExtractor

RowMapper (如其名称所示)应该映射ResultSet的一个行,而Spring负责为每个返回的行对它进行映射。由于您希望在单个transform对象中转换结果集的几行,所以应该使用ResultSetExtractor

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52104592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档