java - mybatis一对多关系用oracle实现分页
高洛峰
高洛峰 2017-04-18 10:07:42
[Java讨论组]
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
ringa_lee

先按条件查出每一页的ID数组 用你分页的方式
再用ID数组 查询出你需要的详细数据

高洛峰

之前做过一个类似的无限级的菜单树,我大概说一下我的思路,具体能不能实现你可以试试,
主要是通过Map+递归实现层层嵌套,然后我觉的可以对一级的回复坐分页,结构部分代码你可以参考下:

public class ResourceTree {
    public static Map<String, Object> mapArray = new LinkedHashMap<String, Object>();
    public List<Resource> menuCommon;
    public List<Object> list = new ArrayList<Object>();

    public List<Object> menuList(List<Resource> resource) {
        this.menuCommon = resource;
        for (Resource x : resource) {
            Map<String, Object> mapArr = new LinkedHashMap<String, Object>();
            if (x.getParentId() == 0) {
                mapArr.put("id", x.getId());
                mapArr.put("text", x.getResourceName());
                mapArr.put("resourceUrl", x.getUrl());
                mapArr.put("resourceParent", x.getParentId());
                mapArr.put("resourceType", x.getType());
                mapArr.put("resourceTag", x.getResourceCode());
                // mapArr.put("resourceIcon", x.getResourceIcon());
                // mapArr.put("resourceParentPath", x.getResourceParentPath());
                mapArr.put("children", menuChild(x.getId()));
                list.add(mapArr);
            }
        }
        return list;
    }

    public List<?> menuChild(int id) {
        List<Object> lists = new ArrayList<Object>();
        for (Resource a : menuCommon) {
            Map<String, Object> childArray = new LinkedHashMap<String, Object>();
            if (a.getParentId() == id) {
                childArray.put("id", a.getId());
                childArray.put("text", a.getResourceName());
                childArray.put("resourceUrl", a.getUrl());
                childArray.put("resourceParent", a.getParentId());
                childArray.put("resourceType", a.getType());
                childArray.put("resourceTag", a.getResourceCode());
                // childArray.put("resourceIcon", a.getResourceIcon());
                // childArray.put("resourceParentPath",    a.getResourceParentPath());
                childArray.put("children", menuChild(a.getId()));
                lists.add(childArray);
            }
        }
        return lists;

    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号