洒洒水了 2021-07-06 21:21 采纳率: 61.5%
浏览 26

部门表是自关联查询,但是进行编辑回显数据时上级部门没有显示,其他信息都在?

//跳转到编辑页面
public void toEdit(HttpServletRequest req, HttpServletResponse resp) {
//获取到list.jsp请求的id
String id = req.getParameter("id");
//调用业务层的selectById方法查询单个对象
Dept dept = deptService.selectById(id);
//查询部门信息
List all = deptService.selectAll();
for (Dept dept1 : all) {
System.out.println(dept1.getDeptName());
}
req.setAttribute("deptList",all);
//设置共享数据,让update.jsp的表单项获取
req.setAttribute("dept",dept);
try {
//转发到编辑页面
req.getRequestDispatcher("/WEB-INF/pages/system/dept/update.jsp").forward(req, resp);
} catch (Exception e) {
e.printStackTrace();
}
}
//编辑
public void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String, String[]> map = req.getParameterMap();
Dept dept = new Dept();
dateConvert();
try {
BeanUtils.populate(dept,map);
} catch (Exception e) {
e.printStackTrace();
}
int result = deptService.update(dept);
System.out.println(result);
this.list(req, resp);
}

jsp代码

<form id="editForm">
<input value="${dept.id}" type="hidden" />


部门名称


<input value="${dept.deptName}" name="deptName" class="form-control" type="text" />

所属部门


<option value="">请选择</option>
  • <c:forEach items="${deptList}" var="item"> <option ${dept.parent.id == item.id ?'selected':''} value="${item.id}">${item.deptName}

  • 状态



    <label><input type="radio" ${dept.state==0?'checked':''} name="state" value="0">停用</label>

    <label><input type="radio" ${dept.state==1?'checked':''} name="state" value="1">启用</label>





    <button class="btn bg-maroon" type="button">保存</button>
    <button class="btn bg-default" type="button">返回</button>



    </form>

    接口方法
    //查询所有
    @Select("select * from ss_dept")
    @Results({
    @Result(column = "dept_id",property = "id"),
    @Result(column = "dept_name",property = "deptName"),
    @Result(column = "parent_id",property = "parentId"),
    @Result(column = "state",property = "state"),
    @Result(property = "parent",
    javaType = Dept.class,
    column = "parent_id",
    one = @One(select = "com.itheima.mapper.DeptMapper.selectById")

            )
    })
    List<Dept> selectAll();
    
    //根据id查询
    @Select("select * from ss_dept where dept_id=#{id}")
    @Results({
            @Result(column = "dept_id",property = "id"),
            @Result(column = "dept_name",property = "deptName"),
            @Result(column = "parent_id",property = "parentId"),
            @Result(column = "state",property = "state")
    })
    Dept selectById(String id);
    
    
    //添加
    @Insert("insert into ss_dept values (#{id},#{deptName},#{parentId},#{state})")
    int add(Dept dept);
    
    //修改
    @Update("update ss_dept set dept_name=#{deptName},parent_id=#{parentId} where dept_id=#{id}")
    int update(Dept dept);
    
    //删除
    @Delete("delete from ss_dept where dept_id=#{id}")
    int delete(String id);
    

    业务层
    //查询全部
    @Override
    public List selectAll() {
    SqlSession sqlSession = MyBatisUtils.getSqlSession();
    DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
    List list = mapper.selectAll();
    return list;
    }

    //分页查询
    @Override
    public Page pageQuery(Integer start, Integer size) {
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        Page page = PageHelper.startPage(start, size);
        mapper.selectAll();
        return page;
    }
    
    //根据id查询
    @Override
    public Dept selectById(String id) {
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        Dept dept = mapper.selectById(id);
        return dept;
    }
    
    //添加
    @Override
    public int add(Dept dept) {
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        //id使用UUID的生成策略来获取
        String id = UUID.randomUUID().toString();
        dept.setId(id);
        int result = mapper.add(dept);
        return result;
    }
    
    //修改
    @Override
    public int update(Dept dept) {
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        int result = mapper.update(dept);
        return result;
    }
    
    //删除
    @Override
    public int delete(String id) {
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        int result = mapper.delete(id);
        return result;
    }
    
    • 写回答

    1条回答 默认 最新

    • 夜郎king 2022博客之星IT其它领域TOP 12 2022-10-04 15:36
      关注

      编辑的时候再发一条根据父级id查部门信息的sql应该就可以了。mybatis默认不做级联,需要自己编码实现。

      评论

    报告相同问题?

    悬赏问题

    • ¥15 可以实现这个有不同背景颜色的九九乘法表吗?
    • ¥50 python写segy数据时出错2
    • ¥20 关于R studio 做精确稳定检验的问题!(语言-r语言)
    • ¥50 用贝叶斯决策方法,设计CAD程序
    • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
    • ¥50 ZYNQ7020双核FLAHS烧写的问题
    • ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
    • ¥15 AD9164瞬时带宽1.8G,怎么计算出来?
    • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除? HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers 没用
    • ¥15 服务器安装php5.6版本