mybatisplus递归传递多个参数 |
您所在的位置:网站首页 › js递归树形数据结构 › mybatisplus递归传递多个参数 |
搜索关键字: mybatisplus关联查询传递参数|+"@select"+"树形结构"|+"@select"+"树形结构"+"传参"| +"@select"+"many"+"传参"| +"@select"+"column"+"传参" 1、效果图: http://localhost:3000/menu/l1 2、接口定义: 关键点:id=id,userID = USER_ID表示参数=数据库列名。 package com.xdy.springboot4vue.mapper;import com.xdy.springboot4vue.DTO.MenuDTO;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Many;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface MenuMapper { @Results({ @Result(column = "id",property = "ID"), @Result(column = "NAME",property = "NAME"), @Result(column = "CODE",property = "CODE"), @Result(column = "ORDERS",property = "ORDERS"), @Result(column = "URL",property = "URL"), @Result(column = "id=id,userID = USER_ID",property = "children",many = @Many(select = "com.xdy.springboot4vue.mapper.MenuMapper.getMenus")) }) @Select("SELECT\n" + "\tTBL_MENU.*,TBL_USER_ROLE.USER_ID\n" + "FROM\n" + "\ttbl_user\n" + "INNER JOIN TBL_USER_ROLE ON TBL_USER_ROLE.USER_ID = tbl_user.id\n" + "INNER JOIN TBL_ROLE_PRIVILEGE ON TBL_USER_ROLE.ROLE_ID = TBL_ROLE_PRIVILEGE.ROLE_ID\n" + "INNER JOIN TBL_MENU ON TBL_MENU.ID = TBL_ROLE_PRIVILEGE.MENU_ID " + " where tbl_user.id = #{id} and PARENT_ID is null") List getCats(Long id); // 获取指定目录的子菜单 @Results({ @Result(column = "id",property = "ID"), @Result(column = "NAME",property = "NAME"), @Result(column = "CODE",property = "CODE"), @Result(column = "ORDERS",property = "ORDERS"), @Result(column = "URL",property = "URL") }) @Select("SELECT\n" + "\tTBL_MENU.*,TBL_USER_ROLE.USER_ID\n" + "FROM\n" + "\ttbl_user\n" + "INNER JOIN TBL_USER_ROLE ON TBL_USER_ROLE.USER_ID = tbl_user.id\n" + "INNER JOIN TBL_ROLE_PRIVILEGE ON TBL_USER_ROLE.ROLE_ID = TBL_ROLE_PRIVILEGE.ROLE_ID\n" + "INNER JOIN TBL_MENU ON TBL_MENU.ID = TBL_ROLE_PRIVILEGE.MENU_ID WHERE PARENT_ID = #{id} and TBL_USER_ROLE.USER_ID=#{userID} ") List getMenus(Long id,Long userID); }3、菜单数据库表数据
4、DTO定义 package com.xdy.springboot4vue.DTO;import com.baomidou.mybatisplus.annotation.TableField;import java.util.List;public class MenuDTO { private Long ID; private String NAME; private String CODE; private Long ORDERS; private String URL; @TableField(exist = false) private List children; // 省略get\set\toString定义 } 5、控制器定义: package com.xdy.springboot4vue.controller;import com.alibaba.fastjson.JSONObject;import com.xdy.springboot4vue.DTO.MenuDTO;import com.xdy.springboot4vue.mapper.MenuMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController @RequestMapping("/menu")public class MenuController { @Autowired private MenuMapper menuMapper; @GetMapping("/l1") public JSONObject getMenus(){ JSONObject result = new JSONObject(); List menus = menuMapper.getCats(8L); result.put("data",menus); return result; } } 参考网址: https://blog.csdn.net/qq_41047376/article/details/107021244 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |