SSM整合ProjectDay02-菜单管理:内容删除操作
2019-03-16 00:56
169 查看
一、Dao层
1.SysMenuDao中
public interface SysMenuDao { // 删除操作 统计此菜单对应子菜单的个数 返回值个数【如果子不为0,则不能直接删除 int getChildCount(Integer id); //基于菜单的id执行菜单的删除操作 int deleteObject(Integer id);
2.新建Dao-SysRoleMenuDao
/** * @author : zhenzhen * @date : 2019/3/15 22:34 * 菜单对应数据删除 */ public interface SysRoleMenuDao { // 基于菜单id 删除角色和菜单的关系数据 int deleteObjectsByMenuId(Integer menuId); }
二、mapper.xml–重点难点
mapper1
<!--基于菜单id统计子菜单的个数--> <select id="getChildCount" resultType="int"> select count(*) from sys_menus where parentId=#{id} </select> <!--基于子菜单查询后,符合操作规定进行删除--> <delete id="deleteObject"> delete from sys_menus where id=#{id} </delete>
mapper2
<mapper namespace="com.jt.sys.dao.SysRoleMenuDao"> <!--删除:基于菜单id 删除角色和菜单的关系数据 int deleteObjectsByMenuId(Integer menuId);--> <delete id="deleteObjectsByMenuId"> delete from sys_role_menus where menu_id=#{menu_id} </delete> </mapper>
三、业务层service 写逻辑
service
// 删除菜单 看是否有子菜单 :有子菜单不允许删除。 // 无:1.删除sys_menu子菜单信息 2.删除 sys_role_menu中对应关系 // 返回删除条数 -int类型 int deleteObject(Integer id);
serviceImpl
@Autowired private SysMenuDao sysMenuDao; //关联sys_menu表 @Autowired private SysRoleMenuDao sysRoleMenuDao;//关联sys_role_menu表 @Override public int deleteObject(Integer id) { // 验证参数有效性 if(id==null||id<1){ throw new IllegalArgumentException("参数无效"); } // 基于id判定是否有子菜单 int child = sysMenuDao.getChildCount(id); if(child>0){ throw new ServiceException("请先删除子菜单"); } // 基于id删除菜单表中记录(无) int rows = sysMenuDao.deleteObject(id); // 基于id删除菜单角色表中记录 sysRoleMenuDao.deleteObjectsByMenuId(id); // 返回删除结果 return rows; }
四、Controller
@RequestMapping("doDeleteObejct") @ResponseBody public JsonResult doDeleteObejct(Integer id){ sysMenuService.deleteObject(id); return new JsonResult("delete ok!"); }
五、测验一下!
访问:http://localhost:8080/ssmday4/menu/doDeleteObejct?id=24
结果:
访问:http://localhost:8080/ssmday4/menu/doDeleteObejct?id=45
结果:
客户端
一、menu.list
$(function(){ doGetObjects(); //按钮事件注册 $(".input-group-btn") .on("click",".btn-delete",doDeleteObject); }); function doDeleteObject(){ //1.获取选中的记录id,并进行判定 var id=doGetCheckedId(); if(!id){ alert("请先选中"); return; } //2.定义参数 var params={"id":id}; //3.定义url var url="menu/doDeleteObject" //4.发送异步请求执行删除操作 $.post(url,params,function(result){ if(result.state==1){ alert(result.message); doGetObjects(); }else{ alert(result.message); } }) } //获取选中的记录的id值 function doGetCheckedId(){ //1.获取选中的记录 var selections=$("#menuTable") //bootstrapTreeTable是treeGrid插件内部定义的jquery扩展函数 //getSelections为扩展函数内部要调用的一个方法 .bootstrapTreeTable("getSelections"); //打印一下试试 console.log(selections); //2.对记录进行判定 if(selections.length==1) return selections[0].id; }
测试:
删除47父菜单:
删除47子菜单:
相关文章推荐
- SSM整合ProjectDay02-菜单管理:菜单模块-添加-操作【zTree插件使用】
- SSM-Project-Day03-角色管理-role-删除角色-错点:对数据库操作没有写parameterType
- SSM-Project-Day05-用户管理-功能:用户的禁用和启用修改;菜单列表删除页面局部刷新
- SSM框架day02-MyBatis——023——对单表的CURD操作-删除
- SSM-Project-Day05-用户管理-功能:用户的添加 -坑:功能分析角色的显示是为了呈现所有角色内容,需要找到角色的名字与角色对应的id
- SSM-Project-Day05:用户管理-部门删除 :部门里有部员不允许删除部门
- Linux的Shell--Sed操作(指定行增加删除内容)
- 练习ssm框架整合,做增删改查操作
- Python文件管理对相应目录下的进删除、重命名、移动文件等相应操作
- 删除.gradle文件夹下的全部内容,打开Android Studio卡在Refreshing gradle project
- 删除数据表内容的操作(如何让auto_increment重新开始计数)
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- JAVA操作XML三(更新):修改或删除XML内容
- SSM(spring-springmvc-mybatis)整合开发xml配置文件内容springmvc-config.xml,application.xml,web.xml
- JavaWeb之ssm框架整合,用户角色权限管理
- 文件操作(判断状态、删除、新建、复制、清空文件内容、获取文件长度)
- 内容整合 当前企业内容管理(ecm)的重点
- java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
- SSM+EasyUI整合,简单实现后台增删改查操作