gpt4 book ai didi

java - 从数据库生成动态菜单和子菜单

转载 作者:行者123 更新时间:2023-12-02 05:59:36 25 4
gpt4 key购买 nike

我的数据库中有两个表,即 Menu 和 Sub_Menu...我已使用 JOIN 查询从这两个表中检索数据,看起来像这样

`SELECT menu.menu_name AS menu_name, sub_menu.sub_menu_name FROM menu LEFT JOIN user_category ON menu.user_category_id = user_category.user_category_id LEFT JOIN sub_menu ON menu.menu_id = sub_menu.menu_id WHERE user_category.user_category_name = "Normal";`

在此之后我所做的是我使用了 LinkedHashMap<String, String>来存储结果。现在,问题就出现在这里。当我打印输出时,仅显示重复键的最后一个值,而省略其他值...我想显示的是具有多个值的唯一键..我已经使用 LinkedHashMap<String, ArrayList<String>> 尝试过它但无法做到正确!

`

LinkedHashMap<String, ArrayList<String>> menuSubMenu = new LinkedHashMap<String, ArrayList<String>>();`

`ArrayList<String> subMenu = null;`

`String key = null;`

while (rs.next()) {
key = rs.getString("menu_name");

if (key.equals(rs.getString("menu_name"))) {
key = rs.getString("menu_name");
subMenu = new ArrayList<String>();
subMenu.add(rs.getString("sub_menu_name"));
} else {
subMenu = null;
}

menuSubMenu.put(key, subMenu);
}

最佳答案

抱歉,您的代码示例有点令人困惑,但您可以尝试以下方法:

LinkedHashMap<String, ArrayList<String>> menuSubMenu = new LinkedHashMap<String, ArrayList<String>>();

while(true){
String key = rs.getString("menu_name");
if(!menuSubMenu.containsKey(key)){
menuSubMenu.put(key, new ArrayList<String>());
}
menuSubMenu.get(key).add(rs.getString("sub_menu_name"));
}

希望对你有帮助

关于java - 从数据库生成动态菜单和子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com