Spring练习---28 (用户表和角色表分析,角色列表展示,角色层和Dao层的设置,页面展示操作)

84、下面进入我们的业务层面,进入我们的业务层面我们先分析一个东西,我们要分析用户和角色的关系,因为我们只有在分析完用户和角色之间的关系后,我们才知道表的关系,实体的关系

 85、现在我们先画一张表,分析一下业务模型,因为我们表的关系和实体关系都源于我们的业务模型,你把业务搞明白,你自己的业务就会设计了。

 86、就是你把业务搞明白,你再设计表:你业务不明白,你设计什么表,写什么代码,真的开发有的时候是业务难,而不是

87、首先,我们得弄明白,什么是用户,什么是角色

88、你现在进入一家公司,现在我们登录OA系统之后,必须具备一定的角色

89、你的角色就是程序员,有的人进入公司之后就是项目经理,有的人进入公司是QTO

90、角色不一样导致你在这个系统上操作的功能不一样,但我们在这里不讲权限,只讲用户跟角色,这里有用户和密码,所以在这个地方,我们首先要有用户这个位置

91、我们有很多用户

92、同时我们在系统中还有角色

93、要研究公司员工,CTO,。。。,研究多少岗位

94、COO首席运营官,CTO首席执行官,CFO首席财务官,CTO 首席技术官,技术总监,现在有个问题,我是谁

95、一个用户可以对应很多的角色

96、从右边向左看,是一对多的关系

97、从左往右看,一个用户可以有多个角色

98、从右往左看,一个角色可以被多个用户所用哟

99、一般会有一个角色表,而他维护的就是外键

100、用户表是主表,而角色表也是主表

101、用户与角色之间的关系

102、右边这个用户表

103、左边是角色表,中间用户和角色的中间表

104、从右往左看,一个角色可以被多个用户所用哟

105、一般会有一个角色表,而他维护的就是外键

106 用户表是主表,而角色表也是主表

107、用户与角色之间的关系

108、右边这个用户表

109、左边是角色表,中间用户和角色的中间表

110、一对多的关系,想要判断他们之间的关系,得学表与表之间的关系,new角色列表展示,现在做我们的业务关系

111、new角色列表展示,现在做我们的业务关系

112、真正在设计的时候,我们先设计Dao层,然后设计web层,再设计业务层 

113、这里的数据来自数据库,来源于数据库的role表

114、当我们点击角色管理的时候,才会出现这东西 

115、点击角色管理,业务逻辑是发请求到我们的服务端,到我们web层中的controller,调web层中的某个方法,这个方法负责把我们的方法,传递给业务层---》业务层-------》Dao层,Dao层再通过jdbc模板去查询数据,查到的数据再依次返回,最终到web层,返回的数据依次存到模板里,转发到页面进行展示,

116、这样做不行,这里直接跳转了,没有接收到数据

117、那我应该怎么办,先到controller方法,三层架构,依次过去,再存到ModelView中,再依次转发页面中进行展示

118、角色列表的展示步骤分析

119 第二步 创建controller方法

120 第三步创建业务层方法

121 Dao层方法

122 转发到Model中

123 综合---原先我们web层是servlet,原先我们new对象,现在我们靠spring产生对象,原先web层是由jdbc产生的,现在是由jdbc模板产生的

124角色列表展示---controller,入口是谁,就是角色管理

125、看一下页面

125.1

126、 这里url会默认返回这个url路径:默认访问他,会被映射到这个位置

127、重定向到这个页面

128、这就是main.jsp

129、header.jsp 就是头部

130、引入到侧边栏当中

131、这是侧边栏

132、这里点击之后,内容空白区域能够重新出现,点击之后能够重新出现

133、这里我想点击之后跳转到指定位置:这里我想改成,访问controller方法

134、这里你想写什么都行,映射地址,这个代表role下的list文件

135、现在建一个新的类

136 这里建一个RoleController

137、这里建一个方法:

138、因为点击没有数据,因此这里list不需要参数

139、 

139.1

140 这里还得需要数据

141、这里的路径要配适合适

142、这个地址我们怎么写,requestMapping

143、因为你当前roleController都是当前角色的功能

144

145、这是不是用到serive,没有咋办,给他new,

146 配置文件咋办,右键gen....,使用setter方法

147、如果注入成功了,我们就得需要查询

148 返回的数据是LIst集合中的role对象,查到数据之后给他设进去 

149、名字叫roleList

150、指定视图

151、 设置模型对象,设置视图,我们要设置视图解析器 

152、setViewname

153、前后缀设置完了,光写这个就行了

154、alt 加回车,我们先创建一个serive层,创建一个serive层

155、对应的方法有一个List方法

156、创建一个List接口,我想创建一个接口

157、你光这样不行,你得创建一个对应实现

158、impl包,再多创建一个包

159、他去实现谁那,roleSerive

160、Dao层

161、注入Dao,注入Dao层,创建setter方法

162、新的,返回值就是一个List 

163、role List 把role List直接返回

164、进行相应的创建工作

165、这个方法名放到Dao层

166、Dao层创建成功

167、这时给他改成Dao层,给他改成接口

 168、这里FindAll

169、然后再把他做成一个Dao层的实现

170、实现我们的roleDao 

171、你这里进行相应的操作,就要进行相应的模板对象

172、给他加一个模板对象

173、加一个setter方法

174、给他一个setter方法

175、是这个表

176、查到的属性要封装成实体

177、加一个泛型,后面给一个对应的实体类类型

178、完活,把类型给写上

179、创建完之后能不能显示,这是业务层跟Dao蹭的实现

180、放到Dao层

 181 弄是一个Dao的实现

182、在这里实现一个roleDao

183、配置实现,代码这里虽然写完了,但是肯定返回不通,原因在于,这里要跟SAO容器要serive

184、这里获取Dao层

185、我们把Dao层,web层,业务层到得放到spring容器当中

186、我们先看web层

187、@controller,加上这个表示用注解的形式添加

188、如果由注解方式产生Bean,你还得进行包扫描,在springMvC中

189、再到springMVC,进行组件扫描,扫描Controller,因为业务层跟Dao层 

190、我们再加一个context的命名空间

191、这里context命名空间,s

 

192、扫这一层就行

193、web层现在就放这个容器,就放到业务层,如果这个用注解,你得把他给copy一下

193.1 copy一下权限名:

194、回到spring的配置文件当中

195、配置roleservice,内部他要注入Dao

196、他内部要干嘛,注入serive

197、注入serive要价autoWired

198、加了autoWird,set方法能不能省掉

199 我们web层用注解,业务层
 

200 、找到我们的权限限定名,配置一下

201、打开我们的roleDao,看到的是jdbc模板对象


201.1 引用一下我们jdbc的模板

202、页面如果想要实现一个展示的技术,我还得修改这个页面

203 我现在把数据存到ModelView

204、这个用数据进行展示

205、role-list

206、取谁,取计算扣这个

207、剩下的用for循环,var代表着集合 

208 真么写就行

209、解析出错,要不配置源有问题,要不解析有问题

210、约束源有问题

211、约束有问题写错了

212、成功了

213、检验成功,在数据库里添加数据


213.1 数据添加成功

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Doris IP变更问题详解

Apache Doris IP变更问题详解 一、背景二、环境硬件信息软件信息 三、FE恢复3.1 异常日志3.2 获取当前ip3.3 重置ip信息3.4 重置元数据记录3.5 元数据模式恢复3.6 重置fe集群节点3.7 关闭元数据模式重启fe 四、BE恢复4.1 获取当前ip4.2 重置ip信息4.3 重置be集群节点 一、背景 …

vue3 基础知识

vue3创建一个项目 PS D:\code> npm init vuelatestVue.js - The Progressive JavaScript Framework√ Add TypeScript? ... No / Yes √ Add JSX Support? ... No / Yes √ Add Vue Router for Single Page Application development? ... No / Yes √ Add Pinia for sta…

WordPress用于您的企业网站的优点和缺点

如今,WordPress 被广泛认为是一个可靠、可扩展且安全的平台,能够为商业网站提供支持。然而,许多人质疑 WordPress 是否是适合企业的平台。 这就是我们创建本指南的原因。通过探索 WordPress 的优点和缺点,您可以确定世界上最受欢…

linux部署kafka3.5.1(单机)

一、下载jdk17 kafka3.x版本需要jdk11以上版本才能更好的兼容,jdk11、jdk17都是LTS长期维护版本,而且jdk17支持springboot3.x,所以我选择了openjdk17。 下载地址: Archived OpenJDK GA Releaseshttps://jdk.java.net/archive/ 二、上传jdk安装包解压 …

PHP加密与安全的最佳实践

PHP加密与安全的最佳实践 概述 在当今信息时代,数据安全是非常重要的。对于开发人员而言,掌握加密和安全的最佳实践是必不可少的。PHP作为一种常用的后端开发语言,提供了许多功能强大且易于使用的加密和安全性相关函数和类。本文将介绍一些P…

【目标检测中对IoU的改进】GIoU,DIoU,CIoU的详细介绍

文章目录 1、IoU2、GIoU(Generalized Intersection over Union)3、DIoU4、CIoU 1、IoU IoU为交并比,即对于pred和Ground Truth:交集/并集 1、IoU可以作为评价指标使用,也可以用于构建IoU loss 1 - IoU 缺点: 2、对于pred和GT相…

Android Studio导入项目需要做的一些配置

点击项目结构 选择本地安装的SDK、NDK目录 选择java版本 重新加载项目 Clean Project Rebuild Project 选择要构建的版本 可选debug和release 打包apk安装包 打包完成,就可以安装到安卓手机了

【2023最新爬虫】用python爬取知乎任意问题下的全部回答

老规矩,先上结果: 爬取了前200多页,每页5条数据,共1000多条回答。(程序设置的自动判断结束页,我是手动break的) 共爬到13个字段,包含: 问题id,页码,答主昵称,答主性别,…

Java虚拟机(JVM):堆溢出

一、概念 Java堆溢出(Java Heap Overflow)是指在Java程序中,当创建对象时,无法分配足够的内存空间来存储对象,导致堆内存溢出的情况。 Java堆是Java虚拟机中用于存储对象的一块内存区域。当程序创建对象时&#xff0c…

Maven之JDK编译问题

IDEA Maven 默认使用 JDK 1.5 编译问题 IDEA 在「调用」maven 时,IDEA 默认都会采用 JDK 1.5 编译,不管你安装的 JDK 版本是 JDK 7 还是 JDK 8 或者更高。这样一来非常不方便,尤其是时不时使用 JDK 7/8 的新特性时。如果使用新特性&#xff…

智能监控系统的守护者:人工智能行为识别技术的崛起与发展

人工智能助力监控系统:行为识别在安全监控中的应用与挑战 摘要: 随着人工智能技术的快速发展,行为识别在监控系统中的应用逐渐成为安全监控领域的重要工具。本文将详细探讨人工智能行为识别技术在监控系统中的应用,以及在实际应用…

乖宝宠物上市,能否打破外资承包中国宠物口粮的现实

近日,乖宝宠物上市了,这是中国宠物行业成功挂牌的第三家公司。同时,昨日,宠物行业最大的盛事“亚洲宠物展”时隔3年,于昨日在上海成功回归。 这两件事情的叠加可谓是双喜临门,行业能够走到今天实属不易&…

报道 | 9月国际运筹优化会议汇总

封面图来源: https://www.pexels.com/zh-cn/photo/1181406/ 九月召开会议汇总: The 96th meeting of the EURO Working Group on Multiple Criteria Decision Aiding (EWG-MCDA) Location: Paris, France Important dates: Conference: September 202…

STP生成树协议

一、STP是什么 STP协议概述生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构&…

计算机网络-物理层(三)-信道的极限容量

计算机网络-物理层(三)-信道的极限容量 当信号在信道中传输失真不严重时,在信道的输出端,这些信号可以被识别 当信号在信道中,传输失真严重时,在信道的输出端就难以识别 造成失真的因素 码元传输速率信号传输距离噪声干扰传输媒…

CSS中的transform属性有哪些值?并分别描述它们的作用。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ translate()⭐ rotate()⭐ scale()⭐ skew()⭐ matrix()⭐ scaleX() 和 scaleY()⭐ rotateX()、rotateY() 和 rotateZ()⭐ translateX() 和 translateY()⭐ skewX() 和 skewY()⭐ perspective()⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&…

Python 处理 Excel 表格的 14 个常用操作

目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…

MySQL— 基础语法大全及操作演示!!!(下)

MySQL—— 基础语法大全及操作演示(下)—— 持续更新 三、函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 四、约束4.1 概述4.2 约束演示4.3 外键约束4.3.1 介绍4.3.2 语法4.3.3 删除/更新行为 五、多表查询5.1 多表关系5.1.1 一对多5.1.2 多对…

Matplotlib数据可视化(一)

目录 1.Matplotlib简介 2.Matplotlib绘图基础 2.1 创建画布与子图 2.2 添加画布属性 2.3 绘图的保存与显示 1.Matplotlib简介 Matplotlib是一个用于绘制数据可视化图表的Python库。它提供了广泛的功能和灵活性,可以创建各种类型的图表,包括折线图、…

min-height到底是什么?

1、概念 给元素设置最小高度,当height小于 min-height ,min-height会覆盖height的值 2、案例 如果我有一个盒子A,A设置了min-height的高度为200px;并设置了overflow:auto,那么如果里面的内容超过了200px…