当前课程知识点:软件开发实训--动态网站开发 > 6 用户管理功能实现 > 6.1用户服务层接口实现 > 6.1.1用户服务层接口实现
同学你好
欢迎回到软件开发实训课堂
上节课咱们讲了如何去实现用户
访问对象的接口实现
那么这节课我们来讲一讲
如何通过服务层去访问我们的数据访问对象
从而实现我们对用户信息的操作
好
要想访问访问对象的话
我们还需要去写service
做一个服务接口
实际上我们这个时候用控制器就可以访问这个
访问对象了
但是我们为什么要多一个服务对象呢
就是我们把对数据的访问和对我们功能的处理
让它独立出来
而控制器仅仅只是用来转发的
转发我们的请求的
所以对功能的处理
我们把它完全放在服务端就可以了
所以我们将整个框架用服务
dao控制器
用这三层来把它实现了
那么服务的定义
因为服务没有默认的接口来实现所有的默认方法
所以我们可以定义一个基本的服务接口
把所有的默认的方法给它定义出来
再一个我们也可以用一个基本的类来实现
基本的服务接口
从而让我们定义自己的某个实体对应的服务时
能够更加容易快速
而且减少了我们代码的重复
好
我们来看一下
服务该如何定义
首先
我们在我们的包名上点击右键
选择Java接口
这里边类名我们用userService
表明我们要定义一个服务接口
服务接口
我们把它放在Service这个包中
完成后
我们就可以去定义它的相关的基础方法了
第一个
我们应该需要存储我们的实体
user
第二个
我们需要查询它
findAll
查询所有的
而且是根据关键字来查询
并且还需要分页
有时候我们去修改信息时
还需要根据我们的ID来查询
但是这些返回各自不能有void的了
必须要有它自身的返回类型
那么这些返回类型是什么呢
首先我们来看findAll
findAll是查找所有的
但是它具有分页功能
而我们的dao对象返回的是配置
在这里
因为我们前端需要配置数据
所以我们也让它返回配置这个对象
再看
findBy
findBy查出来
因为ID它是唯一的
所以它查出来的时候只有一条数据
所以我们把它直接转换成实体
这样我们就可以实现
通过ID来查询一个实体
通过findAll来查询多个实体
我们导入配置
另外一个我们还需要删除
删除呢我们删除一条信息
也可能我们需要通过一个整型来删除
还有可能我们需要什么呢
多个删除
来删除用户的
来删除更多的用户
这是增删改查
就已经都有了
有单个删除
有批量删除
这样我们最基本的接口
user service就定义完了
然后对它的实现
我们在service包上点击右键
选择Java类
来实现我们的接口
接口的实现呢
我们尽量的使用接口的名字加上一个Impl
这样我们很快的能够准确的知道我们实现的是
哪一个接口
好
Implements
然后,我们的接口
实现所有的抽象方法
对于每一个出现方法
它自动的给你生成了方法
但是方法里用的是抛出了异常
也就是如果你不实现的话
那么这个方法默认是抛异常的
在这里我们要实现它
加上Autowired
Autowired是spring
能够帮我们自动的注入我们需要的实体类对象
自动注入我们的类对象
好
我们来看一下
我们需要的是userRepository
用这个接口对象
我们就可以操作用户实体了
好
首先看保存
访问对象
调用它的save
然后存储对象findAll
这里边
我们可以直接调用我们在dao里定义的
自定义的方法来实现
它返回的类型是一样的
所以我们直接return就可以了
findBy ID一样的
我们可以通过dao的findByID来得到我们所要的数据
同样的
它返回的是一个optional对象
这里面就需要我们去获取对应的实体对象了
optional对象
它实际上可以通过get来返回
它里面的实体对象
所以我们调用它的get方法就可以了
删除
也是调用dao的delete的方法
通过dao的deleteByID方法
来删除给定ID的用户信息
最后批量删除
批量删除它操作的用户数就比较多了
user
注意循环的选择
我们去删除它
用我们上面的删除方法就可以了
或者我们直接调用
userRepository
这个对象来删除
这个删除呢
,它有一个deleteBys
你可以把它转换atretboll来删除
也可以通过delete删除
一个一个的删除
但是这个就会牵扯到一个数据的完整性问题
我们不能删了半截
最后出错了
前面已经删了
后边还没有删掉
这样就不合适了
那么解决这个问题的方式就是在我们的方法
上面加上一个Tansational
这样我们的事务处理就能够保证
我们删除的时候数据的完整性
好
这是我们要实现的服务端
为了让spring能够自动的管理和扫描这个对象
我们需要在实现类上加一个注解
service
用来告诉spring
我们实现了userSevice这个接口
并且作为服务类来提供相关服务
好
我们的sevicee写完了
我们看到它在发布的时候
总是出现了这个错误提示
说我们的findByKeyword
在使用的时候
说用到了配置
而他告诉我们分页查询必须有一个pageable参数
但是我记得我们已经提供了pageable
在往后看
我们看到了我们这个方法
它的返回类型
以及它提供的参数
在这里我们发现我们这个参数
居然是来自另外一个包的
所以我们在导入时一定要注意
打开我们的数据库对象
删除我们原来导入的pageble
所以在开发的过程中
因为类名的重复
你要时刻注意导入正确的相关类包
看一下我们要用到的是spring框架里面的
pageble
所以我们要选择第二个
而不是第一个
这样我们就把它修改过来后
它自动发布
不再出错了
好
我们看一下
userservice
它的实现类里边报一个错
我们发现我们改完以后
这里出错了
这说明我们类里边引用的pageble也是错误的
所以我们需要把它导入的删掉
让它重新导入我们正确的类来
好
这样子的话
我们的overrid出现了错误
很明显吗
那就是我们的接口里边的也导入的是错误的
所以这一个错误引起了很多地方发生了问题
好
我们导入这个包
把它复制过来
这样的话我们导入正确的类后
我们这个错误就全部解决了
好
有关用户服务层的实现
我们就讲到这里
下节课我们再见
-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随堂测试