2013-12-11 2 views
0

Мы сделали этот кусок кода, но hashmap не содержит никаких значений. Мы не получаем сообщение об ошибке, поэтому мы не знаем проблемы. PK of Artikel - это артикул, а PK AangekochtArtikel - это многократный PK, а именно aankoopNr и artikkelNr.query doens't fill hashmap

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; 

    } 
+0

Выньте эти '\ n' своих запросов он не нужен. –

+0

И измените это: 're.getString (" Artikel.artikelNr ");' to this: 're.getString (" artikelNr ");' набор записей не оценивает имя таблицы. –

+0

при удалении \ n обязательно замените его символом пробега или сделайте это \ r \ n. – Jade

ответ

0

попробовать gratis.Add (gratisArtikel) или gratis.Add (gratisArtikel, aantal)

Или, возможно, попытаться увеличивать aantal переменную внутри цикла в то время и после

gratis.put(gratisArtikel, aantal); 
aantal++; 

Кажется, что ваш ввод нового объекта в индекс 0

Смежные вопросы