CGB2005 0817 JAVA13

0817 菜单模块删除按钮补实现

1.dao层
在这里插入图片描述

在这里插入图片描述
考虑到可能会全删 删完之后必须要先删除子菜单和关系元素
新建一个dao
在这里插入图片描述
service层
在这里插入图片描述

在这里插入图片描述
自动注入加一个dao

@Override
	public int deleteObject(Integer id) {
	    //1.参数校验
		if(id==null||id<1)throw new IllegalArgumentException("id值无效");
		//2.判定是否有子菜单
		int childCount=sysMenuDao.getChildCount(id);
		if(childCount>0)throw new ServiceException("请先删除子菜单");
		//3.执行菜单角色关系数据的删除
		sysRoleMenuDao.deleteObjectByMenuId(id);
		//4.删除自身信息
		int rows=sysMenuDao.deleteObject(id);
		//5.验证结果并返回
		if(rows==0)throw new ServiceException("记录可能已经不存在");
		return rows;
	}

controller层
在这里插入图片描述
效果实现

尝试删除类目管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再去删除4项
在这里插入图片描述
在这里插入图片描述
无子菜单了
在这里插入图片描述
删除已实现
在这里插入图片描述
在这里插入图片描述
如上图 关系元素也被认定为是子菜单元素 都要删干净才可以实现
自己尝试论证
没错的 但是子菜单是所有的大项 自己去记住

mvc的jsonresult理解
https://www.cnblogs.com/lmfeng/p/3596175.html
JSON

1.dept 部门管理复制粘贴 逻辑都一样
在这里插入图片描述
在这里插入图片描述
有了id后 对应修改
在这里插入图片描述
在这里插入图片描述
好了 尝试去实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下图 不够严谨
在这里插入图片描述
数据层

在这里插入图片描述
每天写一个sql xml 后面也自己总结 语句 尤其是#{}

**

开始角色管理 业务设计

**
在这里插入图片描述

一对多 多对多
如下 多对多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分层目的主要将复杂问题简单化,实现各司其职,各尽所能。

1.客户端
只需要改starter就行
在这里插入图片描述
因为(自我重复)
在这里插入图片描述
和日志模块一模一样
在这里插入图片描述
1.pojo 有严格的 映射 一一对应关系
在这里插入图片描述

2.dao层
在这里插入图片描述
pageSize 查询几条(页面大小)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mapper
在这里插入图片描述

3.业务逻辑层 service层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去改
在这里插入图片描述

在这里插入图片描述

5.controller层
发现 和日志模块差不多
在这里插入图片描述
在这里插入图片描述
实现 在客户端页面没数据是因为没写controller层
写上就好了
错误实现 类型
在这里插入图片描述
在这里插入图片描述
检查dao service 属性和类型! 晚上自己试错(over)
总结如上图错误
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
pageSize不需要在业务逻辑层写 因为后面要把对应的一条条查出来
总结 impl下报错 去回看dao 和对应service接口就行可

客户端页面
复选框更多功能实现 nocheckInherit
晚上 学会自己去查 前端 (有空去 必要性不足)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下一步 去实现修改数据

前提 先实现保存按钮的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
pojo去对应
数组是
在这里插入图片描述
(1)自身信息的数据层 dao
在这里插入图片描述
(2)中间关系数据表(角色对应多个菜单管理数据)的对应dao 一对多
在这里插入图片描述
这里则是可变参数(和数组 二选一)
在这里插入图片描述
Mapper层
(1)自身信息的数据层 dao下的mapper层
在这里插入图片描述

在这里插入图片描述
parameterType可省略
在这里插入图片描述
为什么要有两个关系数据

目的因为一个角色要对应多个菜单 要新建一个中间表的映射文件

在这里插入图片描述
找回以前的活动模块 对应回看学习
在这里插入图片描述
在这里插入图片描述
所以后面是属于二次使用写法

(2)中间关系数据表(角色对应多个菜单管理数据)的对应dao 一对多

目的因为一个角色要对应多个菜单 要新建一个中间表的映射文件

在这里插入图片描述
在这里插入图片描述
ps在这里插入图片描述
看得舒服 改回来
在这里插入图片描述
3.service层
在这里插入图片描述
一对多的业务思想
在这里插入图片描述
注入两个表 一个角色自身数据表 一个新的中间关系表
在这里插入图片描述
如果先保存关系数据 再去保存自身信息 就获取不到id了

保存的正确顺序 先保存自身信息 再去保存关系数据 就获取entity里面的id在这里插入图片描述
如上字+图 删除业务则相反
先删除关系数据 再去删除自身信息

3.controller层
在这里插入图片描述
4.雷哥的实现 html 客户端层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
11.44晚上补全 缺了一点 报错的理解(over 如上三图)

雷哥修改完之后
在这里插入图片描述

上午总结

在这里插入图片描述
自己去实现保存按钮 (复制粘贴理解)
1.dao层
在这里插入图片描述
在这里插入图片描述
各自对应的Mapper
在这里插入图片描述

在这里插入图片描述

2.service层
在这里插入图片描述
在这里插入图片描述
3.controller层
在这里插入图片描述
4.实现 html 客户端页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思考老师出现那个错误 remark和note的备注问题 晚上(over)

下午实现修改功能 关键 显示以往数据在上面
自己的疑问 从数据库还是从页面的tr td数据里面取?

修改按钮
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.pojo 封装查询的数据
在这里插入图片描述
2.dao层
在这里插入图片描述
mapper
基于id去查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个一个表去查 取出来 封装 然后显示在客户端层面
成功实现了 晚上补图

第二个方法 修改的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

service方案2
在这里插入图片描述

晚上回看 14.52分之前
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
resultMap是自己去定义规则
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
映射 sql的嵌套在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三种
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ofType是集合的类型 property是集合
在这里插入图片描述

不理解多表关联查询和sql嵌套查询

<!-- 从当前表中基于查询角色自身信息(对应方案3-多表关联查询) -->
   <resultMap type="com.cy.pj.sys.pojo.SysRoleMenu" 
              id="sysRoleMenu">
          <id property="id" column="id"/>
          <result property="name" column="name"/> 
          <result property="note" column="note"/> 
          <collection property="menuIds" ofType="integer"> 
                      <result column="menu_id"/>
          </collection>
   </resultMap>
   <select id="findById" 
           resultMap="sysRoleMenu">
           select r.id,r.name,r.note,rm.menu_id
           from sys_roles r left join sys_role_menus rm
           on r.id=rm.role_id
           where r.id=#{id}
   </select>
   <!-- 从当前表中基于查询角色自身信息(对应方案2-select嵌套) -->
   <!-- resultMap是mybatis中非常重要的一种映射元素,用于实现mybatis中的高级映射:
           应用场景:
    1)表中字段与类中属性名字不一致
    2)sql嵌套查询
    3)多表关联查询 -->
    <!--
   <resultMap type="com.cy.pj.sys.pojo.SysRoleMenu" 
              id="sysRoleMenu">
          <id property="id" column="id"/>
          <result property="name" column="name"/> 
          <result property="note" column="note"/> 
          <collection property="menuIds"
                      column="id"
                      select="com.cy.pj.sys.dao.SysRoleMenuDao.findMenuIdsByRoleId">
          </collection>
   </resultMap>
   
   <select id="findById" 
           resultMap="sysRoleMenu">
           select id,name,note
           from sys_roles
           where id=#{id}
   </select>
   -->

在这里插入图片描述
晚上
客户端 html 展开或者收起
在这里插入图片描述
zTree的展开或收起
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改页面效果的程序 页面显示数据部分

在这里插入图片描述

回到显示修改页面的全部信息后 点击更新按钮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.dao与mapper
在这里插入图片描述
还得更新关系表数据
在这里插入图片描述
先删除 后添加=更新
service层
在这里插入图片描述
在这里插入图片描述
controller层
在这里插入图片描述
在这里插入图片描述

修改页面效果的程序 保存按钮部分

1.dao mapper
在这里插入图片描述
在这里插入图片描述
mapper
在这里插入图片描述
2.service层
在这里插入图片描述
在这里插入图片描述
3.controller层
在这里插入图片描述
4.客户端页面 html
在这里插入图片描述
在这里插入图片描述

总结
在这里插入图片描述
在这里插入图片描述
实现绑定页面 更新出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现删除按钮
1.dao和mapper

数据移除后
在这里插入图片描述
角色页面
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
分页查询
在这里插入图片描述
用到了分页插件 嵌套查询
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值