建设机械网站方案设计/2022新闻热点事件简短30条
01简单的就是dao-xml-service-serviceimpl-controller-html
02.dao接口
由于delete的功能在菜单表中进行的,需要考虑是否相关项有子菜单,有的话,就不能删除。
况且delete的菜单项,还有一张表相关,就是sysRoleMenu这张表,要删除菜单的相关项,还需要进一步去删除sysRoleMenu的相关数据。
sysMenuDao:
int getChildByid(Integer parentId);int deleteByid(Integer id);
sysRoleMenuDao:
int deleteRoleMenuById(Integer menuid);
03.xml
sysMenuMapper.xml:
<select id="getChildByid" resultType="int">select count(*) from sys_menus where parentId=#{parentId}</select><delete id="deleteByid" >select count(*) from sys_menus where parentId=#{parentId}</delete>
sysRoleMenuMapper.xml:
<delete id="deleteRoleMenuById">delete from sys_role_menus where menu_id=#{menuid}</delete>
04.service
因为主要的功能是删除,所以就没有声明查找子菜单的函数。
int deleteObjects(Integer id);
05.serviceimpl
因为可以在实现类中去写sysRoleMenuDao接口,就可以暂时不需要在写一个sysRoleMenu的service接口。
@Overridepublic int deleteObjects(Integer id) {if (id==null || id<0){throw new serivceException("ID 输入不合法");}int count=sysMenuDao.getChildByid(id);if (count==0){throw new serivceException("请先删除子菜单");}sysRoleMenuDao.deleteRoleMenuById(id);int rows=sysMenuDao.deleteByid(id);if (rows==0){throw new serivceException("数据可能不存在");}return rows;}
06.controller
在controller开头有@RestController,这个等于@Controller和 @ResponseBody
@RequestMapping("doDeleteObject")public JsonResult doDeleteObject(Integer id) {sysMenuService.deleteObjects(id);return new JsonResult(" delete ok");}
controller类的报错,会被@ControllerAdvice注解修饰的类来接受,在返回jsonresult对象,给用户看。
package com.cy.common;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;@ControllerAdvice//mvc模块中用来描述异常处理类的注解
public class GobalException {@ExceptionHandler(RuntimeException.class)//异常处理@ResponseBodypublic JsonResult doHandleRuntimeException(RuntimeException e) {e.printStackTrace();//也可以写日志return new JsonResult(e.getMessage());//封装}
}
07.html
这里使用到了treegrid和ztree插件,进一步学习在写