中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中如何實現遞歸查詢部門樹形結構數據

發布時間:2021-09-24 11:57:29 來源:億速云 閱讀:605 作者:小新 欄目:開發技術

小編給大家分享一下Java中如何實現遞歸查詢部門樹形結構數據,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

說明:在開發中,我們經常使用樹形結構來展示菜單選項,如圖:

Java中如何實現遞歸查詢部門樹形結構數據

那么我們在后端怎么去實現這樣的一個功能呢?

1、數據庫表:department

Java中如何實現遞歸查詢部門樹形結構數據

2、編寫sql映射語句

 <select id="selectDepartmentTrees" resultType="com.welb.entity.Department">
        select * from department
        <where>
            <if test="updepartmentcode!=null">
                and UpDepartmentCode=#{updepartmentcode}
            </if>
           
        </where>
    </select>

3、創建實體類

public class Department {
    private String departmentcode;//部門code

    private String departmentname;//部門名稱

    private String updepartmentcode="0";//上級部門

    private String departmentdesc;//部門描述

    private List<Department> childDept =new ArrayList();//部門信息樹


    public String getDepartmentcode() {
        return departmentcode;
    }

    public void setDepartmentcode(String departmentcode) {
        this.departmentcode = departmentcode == null ? null : departmentcode.trim();
    }

    public String getDepartmentname() {
        return departmentname;
    }

    public void setDepartmentname(String departmentname) {
        this.departmentname = departmentname == null ? null : departmentname.trim();
    }

    public String getUpdepartmentcode() {
        return updepartmentcode;
    }

    public void setUpdepartmentcode(String updepartmentcode) {
        this.updepartmentcode = updepartmentcode == null ? null : updepartmentcode.trim();
    }

    public String getDepartmentdesc() {
        return departmentdesc;
    }

    public void setDepartmentdesc(String departmentdesc) {
        this.departmentdesc = departmentdesc == null ? null : departmentdesc.trim();
    }

    public List<Department> getChildDept() {
        return childDept;
    }

    public void setChildDept(List<Department> childDept) {
        this.childDept = childDept;
    }
}

4、定義mapper

@Mapper
public interface DepartmentMapper {
    List<Department>selectDepartmentTrees(Department department);
    }

5、定義service業務層實現

@Service
@Transactional
public class DepartmentImpl implements IDepartmentService {
    @Resource
    DepartmentMapper departmentMapper;
    
    @Override
    public List<Department> selectDepartmentTrees(Department department) {
        return departmentMapper.selectDepartmentTrees(department);
    }
}

6、控制層實現

@RestController
@RequestMapping("department")
public class DepartmentController {
    @Resource
    IDepartmentService departmentService;
    @Resource
    IStationService stationService;

    /**
     * 查詢所有部門 樹形展示所有部門 包含模糊查詢
     *
     * @return
     */
    @RequestMapping("/treelist")
    public Object selectAll(Department department) {
        ModelMap map = new ModelMap();
        try {
            List<Department> departmentDtos = getDepartmentList(department);
            map.put("msg", "查詢部門成功");
            map.put("data", departmentDtos);
            map.put("code", 0);
        } catch (Exception e) {
            e.printStackTrace();
            map.put("msg", "查詢部門失敗");
            map.put("code", 1);
        }
        return map;
    }

    /**
     * 遞歸查詢部門
     * @param department
     * @return
     */
    private List<Department> getDepartmentList(Department department) {
        List<Department> departments =departmentService.selectDepartmentTrees(department);
        if (departments.size()>0){
            Department department1=new Department();
            for (int i = 0; i <departments.size() ; i++) {
                department1.setUpdepartmentcode(departments.get(i).getDepartmentcode());
                List<Department>dtos=getDepartmentList(department1);
                departments.get(i).setChildDept(dtos);
            }
        }
        return departments;
    }
}

7、進行測試,這里我用postmain工具測試,結果如下圖

Java中如何實現遞歸查詢部門樹形結構數據

看完了這篇文章,相信你對“Java中如何實現遞歸查詢部門樹形結構數據”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井冈山市| 木兰县| 潍坊市| 江油市| 淳安县| 冷水江市| 孝感市| 临颍县| 若羌县| 三都| 项城市| 仪征市| 伊春市| 兰溪市| 彭阳县| 克什克腾旗| 文安县| 当阳市| 洛南县| 昌平区| 竹北市| 朝阳区| 白城市| 田林县| 通道| 五台县| 庄河市| 金华市| 平乡县| 连南| 普格县| 罗山县| 清水河县| 奇台县| 临桂县| 武宁县| 宝清县| 乐山市| 抚顺县| 龙川县| 大余县|