首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中从预准备语句中获取值

在java中从预准备语句中获取值
EN

Stack Overflow用户
提问于 2015-07-31 03:42:38
回答 1查看 723关注 0票数 0

我需要你帮我准备好那份声明。我想在转换映射有像以前的2个映射的总和的值。请帮帮我

代码语言:javascript
复制
 statement = connection.prepareStatement("select count(*) as count,b.bankid,status from................... between ? and ? group by status,bankid order by bankid");
                statement.setInt(1, PaymentType.CONVERSION);
                statement.setTimestamp(2, dateFrom);
                statement.setTimestamp(3, dateTo);
                rs = statement.executeQuery();
                while (rs.next()) {
                    int status = rs.getInt("status");
                    String bankid =rs.getString("bankid");

                    if (status == 1) {
                        suc.put(bankid, rs.getInt("count"));
                    }else {
                        fail.put(bankid, rs.getInt("count"));
                    }
                    conv.put(bankid, success.get("count") + failed.get("count"));
EN

回答 1

Stack Overflow用户

发布于 2015-07-31 04:21:24

您为successfailed映射使用了错误的密钥。

success.get("count") + failed.get("count")

应该是

success.get(bankid) + failed.get(bankid)

您还应该防止successfailed映射从get返回null,以防在计算表达式时这些映射没有bankid条目。

例如:

代码语言:javascript
复制
public Integer safeGet(Map<String, Integer> map, String key) {
  if (map == null || key == null || !map.containsKey(key)) {
    return Integer.valueOf(0);
  }
  return map.get(key);
}

然后使用:

代码语言:javascript
复制
conversion.put(bankid, safeGet(success, bankid) + safeGet(failed, bankid));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31732675

复制
相关文章

相似问题

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