查询dons't填充hashmap

时间:2013-12-11 02:44:34

标签: sql

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

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;

    }

1 个答案:

答案 0 :(得分:0)

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

或者尝试在while循环内和

之后增加aantal变量
gratis.put(gratisArtikel, aantal);
aantal++;

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