zoukankan      html  css  js  c++  java
  • mysql 实现 start with

    自己写service----> 传入map(idsql,rssql,prior)   idsql 查询id   rssql 查询结果集    调用 以下方法

    @param ids 要查询的起始 start with
    * @param allres 包含要递归数据的结果集 ( 查询时别名ID PID )
    * @param pos prior---> UP or DOWN
    * @return
    */
    public static List<Map<String, Object>> getTree(ArrayList<String> ids,
    List<Map<String, Object>> allres,String pos) {
    List<Map<String, Object>> res=new ArrayList<Map<String,Object>>();

    if("up".equals(pos)){
    res=toCreatTreeUp(ids,allres,res);
    }
    if("down".equals(pos)){
    res=toCreatTreeDown(ids,allres,res);
    }
    return res;
    }
    private static List<Map<String, Object>> toCreatTreeUp(ArrayList<String> ids,
    List<Map<String, Object>> allres,List<Map<String, Object>> res) {
    ArrayList<String> idss = new ArrayList<String>();
    for(String id :ids){
    for (Map<String, Object> map : allres) {
    if(id.equals(map.get("ID").toString())){
    idss.add(map.get("PID").toString());
    res.add(map);
    }
    }
    }
    if (idss.size()!=0) {
    ids = idss;
    res = toCreatTreeUp(ids,allres,res);
    }
    return res ;
    }
    private static List<Map<String, Object>> toCreatTreeDown(ArrayList<String> ids,
    List<Map<String, Object>> allres,List<Map<String, Object>> res) {
    ArrayList<String> idss = new ArrayList<String>();
    for(String id :ids){
    for (Map<String, Object> map : allres) {
    if(id.equals(map.get("ID").toString())){
    res.add(map);
    }
    if(id.equals(map.get("PID").toString())){
    idss.add(map.get("ID").toString());
    }
    }
    }
    if (idss.size()!=0) {
    ids = idss;
    res = toCreatTreeDown(ids,allres,res);
    }
    return res ;
    }

  • 相关阅读:
    禁止ios10双指缩放
    使用uglifyjs压缩JS
    数组深拷贝的方法
    websocket具体如何使用
    订单支付倒计时-剩余时间xx小时xx分xx秒
    css--内凹圆角
    jQuery 演变史
    手机新闻网页
    [译文]此像素非彼像素,非彼像素
    函数有一个特殊的属性 prototype!
  • 原文地址:https://www.cnblogs.com/sx2zx/p/6229260.html
Copyright © 2011-2022 走看看