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 数据添加成功