文章目录

  • 展示管理员列表
  • CV代码说明
  • 通过管理员列表页面,删除管理员
  • 管理员权限
    • 实际操作
    • 步骤如下
  • 事务

展示管理员列表

  • 删除数据后可以选择本地删除,而无需重新请求服务器获取数据,这样可以不占用网络和服务器资源
    但是也存在问题,就是别的用户在访问,你没及时删除,看到的是假的数据,我们寻求高保真,选择重新加载数据
  • 提示确认删除,使用ElementUI的messageBox

  • 显示管理员列表的SQL,可以根据需要选取一些字段排序
  • 关于Result的映射,类的名称和数据库中表字段相同时候,可以不配置,但是为了体现设计代码的意图还是强烈建议加上
  • 查询管理员列表时,没有查询密码字段

CV代码说明

  • CV代码而不是直接CV文件,因为直接CV文件可能IDEA没有第一时间识别出来
  • 如果没有识别出来,解决办法:右击工程Reload from Disk >> 删除target文件夹 >> rebuild项目

通过管理员列表页面,删除管理员

  • 书写顺序如下
  • 删除之前,先查询数据是否存在
  • 查询详情理论上比查询列表的字段多一些,比如说可以有密码
  • Service层删除管理员,返回值为void
  • 代码要写在抛出的异常之前,否则可能没有机会执行,当然IDEA也会提示错误
  • service测试时,要加try…catch{},因为serviceImpl中已经写好了异常处理的业务逻辑
  • Controller的测试可以使用knife4j

管理员权限

  • 多个管理员设计不同的权限,有一套解决方案RBAC模型
  • 权限设计成字符串,是为了不易冲突和便于区分,当然也可以设计为数字
  • 管理员信息可以和权限表直接相连,而引入角色表是为了衔接管理员和权限表,例如1号角色有24中权限,只需要给管理员赋予这个角色即可
  • 举个例子:鹅厂充值后对应某种身份,某种身份对应权限
  • 角色和权限表一般不做增删,软件在设计好时,其实已经定好了,但是管理员没法确定,需要在管理员角色表中添加一些数据,如下

实际操作

  • 当添加管理员时可能被赋予多个角色,这个角色可能有多个权限
  • 当添加一个新的管理员后,这个管理员有多个角色,所以在管理员角色(ams_admin_role)表中存在多条记录

  • 所以在新增管理员后,需要批量插入表ams_admin_role

步骤如下

  • 创建实体类AdminRole
  • 在mapper中增加新的方法
  • 添加新的字段,这个最终从添加页面中获取到实际的数据,可以使用数组或集合,推荐使用数组,因为使用集合后还是需要转换
  • 只需要在serviceImpl中改动数据即可,Controller不需要变动,体现出封装有利于代码的维护,并且可以体会到插入数据时为何要要自动获取数据的id

事务

  • 添加管理员时,角色表插入失败,涉及事务,比如cpu有时间间隔,比如停电,死机,会产生数据安全的问题
  • 业务就一个写操作时,不需要事务,查询不需要事务
  • 事务添加在哪里?现阶段事务直接添加到接口上,好处是求稳,牺牲效率,熟练后按方法添加

IV XXSC-11相关推荐

  1. 微软Windows 11正式发布!一文带你了解免费升级方法、最低系统要求

    如此前Windows 11 预览版来了!预告,微软官方宣布,Windows 11正式版于今日(10月5日)全面上市. 01 微软Windows 11正式发布 Windows 11现在已经正式可以下载了 ...

  2. 微软Windows 11正式发布!(文末送书)

    文末留言送书5本 出处:电脑报(ID:CQCPCW) 编辑:张毅 如若转载请联系原公众号 如此前预告,微软官方宣布,Windows 11正式版于今日(10月5日)全面上市. 01 微软Windows ...

  3. 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版

    嗨,各位好. 相信各位过来点开的时候会鄙视一句"这厮,又来搞山石了",哈哈没错,这次确实又来了,不过这次带了点排错的心得过来,希望给未来在常见的配置过程当中,不知道怎么排错时候有些 ...

  4. UA MATH524 复变函数5 代数运算、可微性与积分基础例题

    UA MATH524 复变函数5 代数运算.可微性与积分基础例题 例1 z=1−2iz=1-2iz=1−2i,w=1+iw=1+iw=1+i,计算zz−2wˉ,z10,ez,cos⁡z,log⁡(1− ...

  5. python io_Python 的 io.StringIO()

    原博文 2019-10-02 22:13 − 引例1 代码: import pandas as pd from io import StringIO csv_data = ""&q ...

  6. Hyperledger Avalon启动笔记

    前略 之前有关Avalon的笔记 https://blog.csdn.net/oe1019/article/details/109395243 参考链接 https://hyperledger.git ...

  7. Winsock 函数

    ● 文 / 林军鼐 [简介] 本系统(WinKing)提供之 Windows Sockets API 介面乃是依照 1993年1月20日 公布之 WINSOCK 第1.1版(如附录)中所定义之函式 ( ...

  8. R语言生存分析数据分析可视化案例

    目标 本文的目的是对如何在R中进行生存分析进行简短而全面的评估.关于该主题的文献很广泛,仅涉及有限数量的(常见)问题.最近我们被客户要求撰写关于生存分析的研究报告,包括一些图形和统计输出. 可用的R包 ...

  9. 【论文阅读--实时语义分割】BiSeNet V2: Bilateral Network with Guided Aggregation

    摘要 低层细节和高层语义对于语义分割任务都是必不可少的.然而,为了加快模型推理的速度,目前的方法几乎总是牺牲低级细节,这导致了相当大的精度下降.我们建议将这些空间细节和分类语义分开处理,以实现高精度和 ...

  10. OpenSSL之EVP(二)——EVP系列函数介绍

    EVP系列函数 摘要函数 典型的摘要函数主要有: 1) EVP_md5 返回 md5 的 EVP_MD. 2) EVP_sha1 返回 sha1 的 EVP_MD. 3) EVP_sha256 返回 ...

最新文章

  1. 【转载】locust性能测试3
  2. 编程能力差,90%输在了这点上!CTO:这样学编程 ,更容易成为高手
  3. 美国本科计算机专业,美国本科计算机专业的最新排名介绍
  4. shell下的进度条和最大最小平均值
  5. PyObject_CallMethod
  6. 速学c++(1)-c++简介
  7. 非root用户 gcc安装
  8. 大数据入门笔记(三)
  9. Android获取手机联系人或通讯录的基本信息(如姓名、电话)
  10. 【转】用fo-dicom实现print scu的注意事项!!!!!!!!!
  11. 信息学奥赛C++语言:旗手
  12. oracle tnsnames.ora文件用法说明
  13. java创建包顺序_Java中包含继承关系时对象的创建与销毁顺序详解(附源码)
  14. 智芯传感ZXP4系列侵袭式压力传感器 为医疗器械智能升级注入新动能
  15. matplotlib之2010-2017年各季度国民生产总值散点图
  16. 荣耀畅玩5a android5.0,华为荣耀畅玩5A有几个版本?华为荣耀5A各版本区别对比介绍...
  17. 三维模型是什么?3D建模都有什么用处?
  18. EBP与ESP的作用
  19. java计算机毕业设计学生用品采购系统源码+数据库+系统+lw文档+部署
  20. 按钮英文字母大小写-默认样式修改-vuetify

热门文章

  1. 垂直搜索引擎之简单架构
  2. 读《20个月赚130亿》有感
  3. 深度学习四大经典书籍
  4. android播放视频控件,视频播放控件VideoView的基本使用
  5. 女孩取名:大方优雅、乖巧伶俐的女孩名字
  6. 从 Gartner 2023 年重要战略技术趋势看 SRE 的发力点
  7. 关于量化交易的种种疑惑与解答
  8. 将长秒数转成24小时制时间
  9. 做外挂的一些原理。自己拿去研究。
  10. 如何在appweb中使用javascript