当前课程知识点:软件开发实训--动态网站开发 > 10 分类管理实现 > 10.1分类接口实现 > 10.1.1分类接口实现
同学
你好
欢迎回到软件开发实训课堂
上节课咱们对拦截器做了一个介绍
对用户登录成功之后
他的授权进行拦截验证
那么我们的拦截验证比较简单
因为我们考虑到网站只有一个用户就够了
所以我们并没有去做复杂的验证
那么要想有完整的用户角色这样的验证模式
还需要你下去以后继续深入的学习
或者根据我们下一个实训任务来完成
我们实训阶段不做那么深入的讲解
那么这节课我们就来看一下
分类
它的相关功能实现
我们说分类是一个网站的内容
进行划分的一种方式
那么在管理的时候
我们必须要进行内容的归类
所以我们要有一个分类的操作
那么分类的操作实现实际上还是对分类的
增删改查
那么我们把它拿出来进行讲解
主要是因为它的实现比用户这样的数据实现
相对来讲
又有一些不一样的地方
所以我们把它单独来说
那么我们怎么来做
第一步我们先实现它的数据访问
然后我们来做
第一个就是实现访问的接口
那么接口里面我们来看一下
把它的名称就叫做contentType
我们在设计的时候
这个名称就要设计好
Repository
这样一个名称
这样一个名称
然后让他去继承JpaRepository
Jpa呢
它需要一个泛型类型
告诉他实体是谁
它的类型我们用组件类型为Integer
好
我们再来创建我们的实体
contentType
首先用Entity对它进行注解
然后用Table进行注解
如果希望数据库中的表名与类名不同
可以给出name
把他的名字给它改变掉
那么分类里边都有哪些数据
第一个就是他的ID根据我们的数据库的设计结构
这里边给出它的内容来
再一个就是权重就是为了排序用的
还有内容它可以分类
tid这里边可不写tid了
我们把它就用parent
因为他类型一样
用parent就可以了
然后生成主键的值
我们不需要去手动的插入主键的值
主键的产生策略
我们就用数据库自身的就可以了
GenerationType.IDENTITY
我们导入需要的注解和相关类
然后我们注解一下
名字的长度分类的长度
通常情况下
50个字符就够了
还有它的名称不能为空
你也可以让这个名称唯一
这也是没有问题的
权重
那么parent是它的父级
Nullable就是可以为空
然后我们说一个父级下面有很多子节点
所以我们是Many ToOne的结构
而且还有一点要注意
我们在生成数据的时候
父节点不能够去生成数据
讲前台
我们会提到
在实际的应用中
有时候我们还需要它的子类
我们这里给出子类的关系
就叫sublist
它的关系是oneto many和上面的manytoOne
是对应的
mappedBy等于parent
我们把对应的键值给出来
JoinColumn
name等于Pid
这样我们关联的字段呢
也就有了
对于分类你也可以提供级联删除
当一个父节点被删除时
它的所有子节点都可以把它删掉
所以我们可以提供一个级联操作
级联的类型All就可以了
好
这是我们对分类它的实体的一个定义
然后我们生成对应的sg方法
以及它的hashCode的与equals方法来生成它
这里边在生成hashCode的时候
我们并不需要所有的字段
只需要他前三个就足够了
后面parent
我们不需要他参与到这里来
所以我们只需要选填三个就够了
这样hashCode与equals方法也就生成好了
我们写完了
实体保存后
我们再回过头来把实体类导进来
现在保存
保存之后
他会重新启动
如果没有异常的话
那么他已经给我们创建了这个表
我们在日志里可以看到
create table Contenttype已经有了
这样我们就把实体与Dio访问对象就做好了
那么在dio访问对象里面
我们通过自定义方法来获得一些查询
比如说我要通过父节点来查询所有的内容
所以我们提供一个publiclist
然后是conteneType
我们不用翻页
是因为它内容并不是特别的多
我们在查找的时候完全可以把它拿出来去操作
findByParent
parent就是它的父级
然后给出它
contentType
parent给出父属性的值
这样我们就会得到他的所有的子节点
所有的子节点
而且我们可以通过循环的方式或者递归的方式
来访问他所有的内容了
好
这是我们定义的一个自定义方法
然后我们再回过头来看一下它的服务方法
service
service
我们也是先去看一下它的接口
contentType
service
在service方法里
我们只需要实现相关的增删改查方法就可以了
第一个是保存save方法
然后储存的是谁
是ContentType实体
我们把实体的内容给它存储进去
还有删除方法
我们删除的时候可以根据实体来进行删除
我们再来添加一个多个删除的方法
这里面我们可以用Iterable
然后contentType
这样一个实体
通过ID来删除
我们的ID是整形
所以我们用Integer
然后我们实现查询方法
也是通过父级来查询
parent
findByParent
来通过父级查询
传递的就是ContentType
我们这里把这个变量名称就叫做parent
再一个
我们说还可以查询
所有的
其实我们可以分页查
这里我们不分页了
就直接用我们的findAll方法
把所有的节点给他查出来
如果说要具体的显示到一个界面的话
你必须像购物网站
它的分类特别的多
你不可能一个页面把它全部显示出来
这个时候如果用findAll来查的话
还是要进行分页为好
但实际上我们在操作时
我们想用这个parent来操作
也就是说我一级一级的去显示它
就不用把它全部的查出来了
好
这个是我们有关增删改查的一些方法的定义
如果在设计过程中没有想到
那么后期你就也可以去添加
下面我们再来看一下
对服务接口的实现
实现的时候
我们只需要给名称后边加一个
MPL就行
这样我们就得到了实现了
implements
contentType Service
来实现它所有的方法
在实现类里边
我们需要去访问他的dio
所以我们要定义contentTypeRepository
导入注解
导入我们需要的类
然后去实现
储存
删除
这是批量删除
批量删除的时候尽量带上失误处理deleteAll
为了能够保证正确性
我们带上Transcational
这样的失误处理注解
我们AC反过来Transactional
这样保证了删除过程中的数据完整
要么成功
要么就都失败
然后我们按照ID来删除它
通过父节点来查找
findAll
查找所有的节点
把它返回去
好
这就是关于内容类型的访问的数据库以及服务的实现
相对来讲还是比较简单的
好
这是有关分类的相关类的实现
我们下节课再见
-1.1课程介绍
--1.1.3随堂测试
-1.2网站需求分析
--1.2.4随堂测试
-1.3网站首页分析
--1.3.3随堂测试
-1.4导航菜单分析
--1.4.3随堂测试
-1.5内容区域分析
--1.5.3随堂测试
-1.6内容副页面分析
-1.7编写需求文档
-2.1后端页面总体分析
--2.1.3随堂测试
-2.2用户管理功能设计
--2.2.3随堂测试
-2.3内容与分类功能分析
--2.3.3随堂测试
-2.4网站配置功能设计
--2.4.4随堂测试
-2.5数据库及表结构分析
-总体设计文档
-3.1前台模板约定
--3.1.3随堂测试
-3.2网站配置接口设计
--3.2.3随堂测试
-3.3菜单接口设计
--3.3.3随堂测试
-3.4内容接口设计
--3.4.3随堂测试
-3.5幻灯片接口设计
--3.5.3随堂测试
-补充设计文档
-4.1用户管理功能设计
--4.1.3随堂测试
-4.2菜单管理功能设计
--4.2.3随堂测试
-4.3内容管理功能设计
--4.3.3随堂测试
-4.4网站配置信息设计
--4.4.3随堂测试
-完成设计文档
-4.6随堂测试
-5.1开发环境搭建
--5.1.2随堂测试
-5.2Web前端环境搭建
-5.3创建用户实体
--5.3.2随堂测试
-5.4用户实体表创建与初始化
--5.4.2随堂测试
-5.5用户数据访问接口实现
--5.5.2随堂测试
-5.6环境搭建问题
-6.1用户服务层接口实现
--6.1.2随堂测试
-6.2用户列表和编辑控制器实现
--6.2.2随堂测试
-6.3用户存储和删除控制器实现
-6.4用户添加、编辑界面实现
-6.5用户管理添加用户调试
-7.1用户查询模板实现
--7.1.2随堂测试
-7.2用户信息编辑的实现
-7.3单个用户删除实现
-7.4多个用户删除实现
-8.1用户列表分页基本实现
-8.2用户列表查询结果分页实现
-8.3通用日期处理
-8.4整型日期处理
--8.4.2随堂测试
-8.5枚举数据的应用
-9.1登录逻辑实现
--9.1.2随堂测试
-9.2登录界面及流程调试
--9.2.2随堂测试
-9.3管理主界面实现
--9.3.2随堂测试
-9.4授权验证拦截器实现
--9.4.2随堂测试
-9.5拦截器调试
-10.1分类接口实现
-10.2分类添加、编辑实现
-10.3分类树结构实现
-10.4分类删除实现
--10.4.2随堂测试
-11.1内容实体定义
-11.2相关接口定义
-11.3服务接口实现
-11.4内容添加、编辑模板实现
-11.5内容添加、编辑控制器实现
-11.6内容检索页面实现
-11.7内容分类树实现
-12.1修改UEditor相关问题
-12.2整合UEditor到内容编辑界面
-12.3UEditor图片对话框应用
-12.4文件上传问题处理
-13.1网站配置相关类实现
-13.2网站配置界面模板实现
-13.3网站配置调试
-14.1网站首页布局实现
-14.2菜单Vue组件实现
--14.2.2随堂测试
-14.3幻灯片Vue组件实现
-14.4滚动Vue组件实现
--14.4.2随堂测试
-14.5滚动接口实现
-14.6滚动接口调试
-14.7幻灯片接口实现
-15.1首页区域实现
-15.2首页内容脚本实现
-15.3首页完善
-15.4Vue组件放入单文件
-15.5详细页面实现
-16.1网站测试介绍
-16.2功能测试
-16.3打包发布
-16.4部署运行
--16.4.2随堂测试