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

标签 java jsp servlets

我的数据库中有两个表,即 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/

相关文章:

java - 可以在循环中多次调用 ServletRequest.getInputStream() 吗?

java - 从数组值制作非图形直方图

java - 使用选择排序对接近排序的数组进行排序?

java - 同一 Controller 中的多个 post ajax 到不同方法

javascript - 如何在ajax成功中提取字符串列表值

java - 如何在 JSP 页面中使用在我的 servlet 中声明的变量?

java - 语法错误插入 while 表达式来完成 JAVA block 语句

java - JComboBox 首次运行后不显示下拉箭头

java - spring标签中是否存在输入类型="date"的模拟?

testing - jetty ServletTester 发布文件?