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