官网关于Mysql数据库中间表的修改方法

网友投稿 688 2022-11-19

官网关于Mysql数据库中间表的修改方法

官网关于Mysql数据库中间表的修改方法

表 角色表, 菜单表, 角色菜单中间表方法: 修改角色的菜单匹配思路1:触发器,假设更新就是新建,之前的全部删除,那么触发器的思路就是如果以前的某角色对应菜单不为空,全部删除,然后新建一批,就算是修改了,但是触发器会报错,重复注入思路2:不用触发器,实现上面的思路思路3:触发器,假设更新是更新删除标志,之前的全部删除标志设为-1,那么新的删除标志就是0,但是这样因为中间表是双主键,所以会造成重复注册,也失败思路4:这个主要是我在代码的实现,套用了列表修改,列表修改也是可以值修改一个的,这样可以进行复用,实现代码:

update(@RequestBody List sysRoles, @RequestParam(value = "菜单编号") List menus){ try{ for(SysRole sysRole: sysRoles){ if(menus != null){ int result = sysRoleService.updateRoleAndMenuDelFlag(sysRole.getId()); for(Long sysMenu: menus){ SysRoleMenu sysRoleMenu = new SysRoleMenu(); sysRoleMenu.setId(UUID.randomUUID().toString()); sysRoleMenu.setCreateBy(sysRole.getCreateBy()); sysRoleMenu.setRoleId(sysRole.getId()); sysRoleMenu.setMenuId(sysMenu); sysRoleMenu.setCreateTime(new Date()); sysRoleMenu.setLastUpdateTime(new Date()); sysRoleMenu.setLastUpdateBy(sysRole.getCreateBy()); sysRoleMenu.setDelFlag((byte)0); sysRoleMenu.setCreateBy(sysRoleMenu.getLastUpdateBy()); sysRoleService.saveRoleAndMenu(sysRoleMenu); } }else{ sysRole.setLastUpdateTime(new Date()); sysRoleService.update(sysRole); } }

if 语句搞定,可能还有其他思路

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring声明式数据库事务的使用-隔离级别
下一篇:阿里云OSS对象存储上传文件以及获取下载链接的策略
相关文章

 发表评论

暂时没有评论,来抢沙发吧~