package com.bean;
import java.util.HashMap;
import java.util.Map;
public class Cheese extends Item {
public CheeseType cheeseType ;
public Map<Ingred,Float> calorieTable = new HashMap<Ingred,Float>();
public Cheese() {
}
public CheeseType getCheeseType() {
return cheeseType;
}
public void setCheeseType(CheeseType cheeseType) {
this.cheeseType = cheeseType;
}
public Map<Ingred, Float> getCalorieTable() {
return calorieTable;
}
public void setCalorieTable(Map<Ingred, Float> calorieTable) {
this.calorieTable = calorieTable;
}
}
这是数据库中存在的类。我不知道如何摄取其中的脂肪,蛋白质和维生素的含量。
层次结构是
Cheese.java
-Cheese
--calorieTable
--cheeseType
--Cheese()
--getCalorieTable():Map<Ingred,Float>
--getCheeseType():CheeseType
--setCalorieTable(Map<Ingred,Float>)
--setCheeseType(CheeseType)
CheeType.java
-CheeseType(Enum)
--Cheddar
-Cottage
--Easy_spread
--Mozzarella
Ingred.java
-Ingred(Enum)
---fat
--protein
--vitamin
-
我试过的是
public List<Item> readAllItemsFromDb() {
// TODO Auto-generated method stub
con=(Connection)DatabaseConnectionManager.conn;
Statement st = null;
try {
st = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ResultSet srs = null;
try {
srs = st.executeQuery("SELECT * FROM cheese_tbl");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while (srs.next()) {
Cheese cheese = new Cheese();
cheese.setId(srs.getInt("SrNo"));
cheese.setDescription(srs.getString("description"));
cheese.setWeight(srs.getFloat("weight"));
cheese.setPrice(srs.getFloat("price"));
cheese.setManufacturingDate(srs.getDate("mfg_date"));
cheese.setUseBeforeMonths(srs.getInt("UsebeforeInmonths"));
if(srs.getString("CheeseType").equals("Mozzarella"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Easy_Spread"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Cottage"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Cheddar"))
cheese.setCheeseType(CheeseType.Mozzarella);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
但我没有得到如何检索蛋白质,脂肪和维生素的价值。
我可以从数据库中检索其他值。该数据库具有以下字段
CREATE TABLE `cheese_tbl` (
`id` int(10) DEFAULT NULL,
`description` varchar(100) DEFAULT NULL,
`weight` float DEFAULT NULL,
`price` float DEFAULT NULL,
`mfg_date` date DEFAULT NULL,
`UseBeforeInMonths` int(3) DEFAULT NULL,
`cheeseType` varchar(20) DEFAULT NULL,
`protein` float DEFAULT NULL,
`vitaminB1` float DEFAULT NULL,
`fat` float DEFAULT NULL
)
INSERT INTO `cheese_tbl` VALUES
(1001,'Mozzarella Cheese - Best for Pizza Preparation',200,200,'2014-01-09',12,'Mozzarella',30,0.57,0.33),
(1002,'Goat Cheese Low calories -Easy Spread',300,300,'2014-01-10',3,'Easy_Spread',0.33,33.99,0.57),
(1003,'Cottage Cheese High Protine and Energy',400,400,'2014-05-28',6,'Cottage',0.33,20.2,0.57);
答案 0 :(得分:0)
从数据库填充地图:
Map<Ingred,Float> map = cheese.getCalorieTable();
map.put(Ingred.protein,srs.getFloat("protein"));
map.put(Ingred.vitamin,srs.getFloat("vitaminB1"));
map.put(Ingred.fat,srs.getFloat("fat"));
如果HashMap不存在:
Map<Ingred,Float> map = new HashMap<Ingred,Float>();
map.put(Ingred.protein,srs.getFloat("protein"));
map.put(Ingred.vitamin,srs.getFloat("vitaminB1"));
map.put(Ingred.fat,srs.getFloat("fat"));
cheese.setCalorieTable(map);
然后我建议你纠正这个:
if(srs.getString("CheeseType").equals("Mozzarella"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Easy_Spread"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Cottage"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Cheddar"))
cheese.setCheeseType(CheeseType.Mozzarella);
到
if(srs.getString("CheeseType").equals("Mozzarella"))
cheese.setCheeseType(CheeseType.Mozzarella);
else if(srs.getString("CheeseType").equals("Easy_Spread"))
cheese.setCheeseType(CheeseType.Easy_Spread);
else if(srs.getString("CheeseType").equals("Cottage"))
cheese.setCheeseType(CheeseType.Cottage);
else if(srs.getString("CheeseType").equals("Cheddar"))
cheese.setCheeseType(CheeseType.Cheddar);
更好的是
cheese.setCheeseType(CheeseType.valueOf(srs.getString("CheeseType")));