Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询未填充hashmap_Sql - Fatal编程技术网

Sql 查询未填充hashmap

Sql 查询未填充hashmap,sql,Sql,我们编写了这段代码,但是hashmap不包含任何值。 我们没有收到错误消息,因此不知道问题所在。 Artikel的PK为Artikenr,而AangekochtArtikel的PK为多重PK,即aankoopNr和artikkelNr public HashMap<Artikel, Integer> gratisArtikelBepalen(String winkelnaam) { Database db = new Database(); C

我们编写了这段代码,但是hashmap不包含任何值。 我们没有收到错误消息,因此不知道问题所在。 Artikel的PK为Artikenr,而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;

    }
试试免费的或免费的

或者尝试在while循环和之后增加一个antal变量

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

在索引0中插入新对象似乎会删除那些\n不需要的查询;对此:re.getStringArtikernr;记录集不计算表名。删除记录集时,\n请确保将其替换为空格字符或使其成为\r\n。