我想使用hashmap从数据库中获取数据。
例 - 表名称菜单
Restaurant_ID Item_Name Price Category
1101 Burger 59 A
1101 pizza 101 A
1101 colddrink 40 B
1101 bread 30 B
输出必须像这样
A类
Item_name Price
Burger 59
Pizza 101
B类
Item_name Price
colddrink 40
bread 30
我想从表格菜单中获取这样的数据到我的jsp页面。
请帮帮我。 我已经尝试了这么多,但我没有得到我需要的输出。
答案 0 :(得分:1)
我在这里使用了ArrayList
,但它会从您的代码中提供相同的输出:
第1步:将Table_Name_Menu
表格中的所有类别转换为ArrayList
public static ArrayList<Characters> getCategories(Connection con) throws SQLException {
Statement stmt = null;
String query =
"select distinct(Category) from Table_Name_Menu order by Category ASC";
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
ArrayList<Character> categories = new ArrayList<Character>();
while (rs.next()) {
char category = rs.getString("Category").charAt(0);
categories.add(category);
}
//This way, all the categories will come in categories Arraylist
stmt.close();
return categories;
}
注意:这是一个未编译的代码。请相应地放置Try和Catch块。
步骤2:遍历您的categories
ArrayList,并针对每个类别,准备一个新查询,以获取与该特定Category
for(Iterator<Character> i = category.iterator(); i.hasNext(); ) {
Statement stmt = null;
stmt = con.createStatement();
char newCategory = i.next();
String query2 = "select Item_name, Price from Table_Name_Menu where Category = \"" + newCategory + "\"";
ResultSet rs = stmt.executeQuery(query2);
//This prints the contents of the new Category
System.out.println("Category : " + newCategory):
while(rs.next()){
System.out.println(rs.getString(1)); //Item Name
System.out.println(rs.getString(2)); //Item Price
}
stmt.close();
System.out.println("\n\n"); //Gap Between categories
}
这样您就可以获得与特定类别相对应的所有内容。