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.rhkb.cn/news/100380.html

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

相关文章

嵌入式设备应用开发(qt界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 linux界面开发有很多的方案可以选。比如说lvgl、minigui、ftk之类的。但是,这么多年来,一直屹立不倒的还是qt。相比较其他几种方案,qt支持多个平台,这里面就包括了linux平台。此…

《Linux从练气到飞升》No.16 Linux 进程地址空间

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

node没有自动安装npm时,如何手动安装 npm

之前写过一篇使用 nvm 管理 node 版本的文章,node版本管理(Windows) 有时候,我们使用 nvm 下载 node 时,node 没有自动下载 npm ,此时就需要我们自己手动下载 npm 1、下载 npm下载地址:&…

Docker创建 LNMP 服务+Wordpress 网站平台

Docker创建 LNMP 服务Wordpress 网站平台 一.环境及准备工作 1.项目环境 公司在实际的生产环境中,需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。 容器 系统 IP地址 软件 nginx centos…

数据结构算法--4堆排序

堆排序过程: >建立堆(大根堆) >得到堆顶元素,为最大元素 >去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整使堆重新有序 >堆顶元素为第二大元素 >重复步骤3,直到堆变空 此时是建立堆后的大根堆模型 将…

Docker容器:docker数据管理、镜像的创建及dockerfile案例

文章目录 一、docker数据管理1.为何需要docker数据管理2.数据管理类型3.数据卷4.数据卷容器5.容器的互联 二.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dock…

ChatGPT、Google Bard、Claude2、新BING哪一款人工智能聊天机器人适合自己

人工智能聊天机器人正在提高数无数专业人士的工作效率。下面我们就来看看目前最流行的几款强大的人工智能工具,以及它们具体如何帮助到你。 今年7月AI圈最大的动静之一便是AI初创公司Anthropic发布了其AI聊天机器人Claude最新版本——Claude2。该聊天机器人对标Open…

Excel/PowerPoint条形图改变顺序

条形图是从下往上排的,很多时候不是我们想要的效果 解决方案 选择坐标轴,双击,按下图顺序点击 效果

机器学习分类,损失函数中为什么要用Log,机器学习的应用

目录 损失函数中为什么要用Log 为什么对数可以将乘法转化为加法? 机器学习(Machine Learning) 机器学习的分类 监督学习 无监督学习 强化学习 机器学习的应用 应用举例:猫狗分类 1. 现实问题抽象为数学问题 2. 数据准备…

Docker容器:docker镜像的创建及dockerfile案例

文章目录 一.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dockerfile结构及分层3.2 联合文件系统3.3 docker镜像加载原理及过程 4.dockerfile操作常用的指令4.…

蓝奥声智能工业安全用电监测与智慧能源解决方案

能源管理变得越来越重要。如今,能源成本已成为国内预算的核心因素,因此用电监控对大多数现代企业来说都很重要。许多企业在日常能源消耗监控中面临着一些挑战,因为它们的规模庞大,基础设施多样化,灵活性低,…

更好的 3D 网格,从重建到生成式 AI

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 这些生成的 3D 模型通常提取为标准三角形网格。网格表示提供了许多好处,包括支持现有软件包、高级硬件加速和支持物理仿真。但是,并非所有网格都是平等的,这些优势只…

Linux系统下消息中间件RocketMQ下载、安装、搭建、配置、控制台rocketmq-dashboard的安装保姆级教程 rocketmq ui

这里给出我使用的 RocketMQ 版本(5.1.3)、RocketMQ-Dashboard 版本的百度网盘链接: 链接:https://pan.baidu.com/s/1HaKBBDGWZ0WKLGgVwIG9pw 提取码:1234 文章目录 一. 官网下载安装二、启动NameServer三、启动Broker四…

Elasticsearch 查询之Function Score Query

前言 ES 的主查询评分模式分为两种,是信息检索领域的重要算法: TF-IDF 算法 和 BM25 算法。 Elasticsearch 从版本 5.0 开始引入了 BM25 算法作为默认的文档评分(relevance scoring)算法。在此之前,Elasticsearch 使…

uniapp 顶部头部样式

<u-navbartitle"商城":safeAreaInsetTop"true"><view slot"left"><image src"/static/logo.png" mode"" class"u-w-50 u-h-50"></image></view></u-navbar>

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面&#xff0c;与所有 ACME v2 CA 兼容&#xff0c;为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书&#xff0c;设置 https 从未如此简单。 …

【中危】PowerJob 未授权访问漏洞 (CVE-2023-36106)

漏洞描述 PowerJob 是一款开源的分布式任务调度框架。 在 PowerJob 受影响版本中存在错误的访问控制漏洞。由于没有对/container/list接口做鉴权&#xff0c;未授权的攻击者可以构造 appId 参数访问 /container/list接口获取应用容器的标识、运行状态、日志等敏感信息。 漏洞…

java+springboot+mysql小区自来水实时监控管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的小区自来水实时监控管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;楼栋管理&#xff1b;租户管理、用水管理&…

糖尿病视网膜病变,黄斑病变,年龄相关检测研究(Matlab代码)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Git分支操作---讲解二】

Git分支操作---讲解二 查看分支创建分支切换分支修改分支切换分支合并分支合并分支【冲突】(只会修改主分支不会修改其他分支)什么时候会有冲突&#xff1f; 查看分支 创建分支 切换分支 修改分支 切换分支 合并分支 合并分支【冲突】(只会修改主分支不会修改其他分支) 什么时…