首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询不会填充hashmap

查询不会填充hashmap
EN

Stack Overflow用户
提问于 2013-12-11 10:44:34
回答 1查看 51关注 0票数 0

我们编写了这段代码,但是hashmap不包含任何值。我们没有收到错误消息,所以我们不知道问题所在。Artikel的PK是artikelNr,AangekochtArtikel的PK是多个PK,即aankoopNr和artikkelNr。

代码语言:javascript
复制
public HashMap<Artikel, Integer> gratisArtikelBepalen(String winkelnaam)
    {
        Database db = new Database();
        Connection con = null;
        Artikel gratisArtikel = new Artikel("",0.0,"",0.0,0.0 ,0, 0.0);
        int aantal = 0;
        HashMap<Artikel, Integer> gratis= new HashMap <Artikel, Integer>();
       int aankoopNr = 0;
       try
       {
           con = db.getConnection();
           Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
           String usql = "SELECT max(aankoopNr) FROM Aankoop WHERE winkelNaam = '" + winkelnaam + "';";
           ResultSet rs = stmt.executeQuery(usql);
           while(rs.next())
            {
              aankoopNr = rs.getInt("max(aankoopNr)");
            }
           String sql = "SELECT Artikel.artikelNr, prijs, aantalBonuspuntenNodig,aantal\n" +"FROM Artikel,AangekochtArtikel\n" +
           "WHERE Artikel.artikelNr = AangekochtArtikel.artikelNr AND aantalbonusPuntenNodig is NOT NULL AND aankoopNr = " + aankoopNr +" AND minBedrag <= bedrag\n ORDER BY prijs DESC;";
           ResultSet re = stmt.executeQuery(sql);
           re.last();
           while(re.next())
           {

            String artikelnr = re.getString("Artikel.artikelNr");
            double prijs = re.getDouble("prijs");
            double aantalBonuspuntenNodig = re.getDouble("aantalBonuspuntenNodig");
            gratisArtikel.setPrijs(prijs);
            gratisArtikel.setAantPuntenNodig(aantalBonuspuntenNodig);
            gratisArtikel.setArtikelNr(artikelnr);
            gratis.put(gratisArtikel, aantal);
           }
          con.close();
       }
       catch(Exception ex)
       {
           try { con.close(); } catch(Exception ex2){};
           System.out.println(ex.getMessage());
       }
       return gratis;

    }
EN

回答 1

Stack Overflow用户

发布于 2013-12-11 11:58:20

试用gratis.Add(gratisArtikel)gratis.Add(gratisArtikel,aantal)

或者可能尝试在while循环内和之后递增aantal变量

代码语言:javascript
复制
gratis.put(gratisArtikel, aantal);
aantal++;

似乎您在索引0中插入了新对象

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

https://stackoverflow.com/questions/20509586

复制
相关文章

相似问题

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