当前课程知识点:软件开发实训--动态网站开发 > 5 环境搭建与开发 > 5.5用户数据访问接口实现 > 5.5.1用户数据访问接口实现
同学你好
欢迎回到软件开发实训课堂
上节课咱们已经定义了用户实体和用户表
同时也导入了初始化的数据
那么这节课咱们来看一下用户数据访问接口的实现
在上节课咱们创建数据库时
在我们的Application配置文件里边用了create
并且让它执行了我们默认要导入的用户数据
但是在执行过程中
咱们遇到了问题
就是不能够显示出它创建的sircle语句
我们
把这个配置给它加上
让它以后在运行时能够创建circle语句
这是一个问题
第二个问题是我们给它加了spring的开发工具
可是
当我们对类进行了修改时
它并没有去更新我们的部署的文件
所以我们还需要怎么样,去发布一下
这样我们怎么来解决呢
首先我们来看一下加一个它生成的
circle语句显示出来的配置
就spring.jpa.show-sql
注意中间有个减号
让它等于true
这样的话
它每次再去执行时
对应的circle语句就会给我们打印出来
这是一个
另外一个我们保存我们的类对类进行了修改
它没有根据我们预期的方式自动的去部署
而还要我们去更新
因为我们实际上已经配了开发工具
这里边需要注意
我们要在开发工具上给它加一个
optional
这样一个选项告诉它
为 true
也就是说让它为真
它才能够去执行相关的操作
也就是我们改了以后
它自动的去发布
好
这是上节课我们在
讲解的过程中遇到的两个问题
那么这节课我们来看一下
对于数据访问对象dao接口该怎么实现
在spring jpa里边
它实际上是把hapnate gpa进行了封装
不需要我们具体地再去实现相关的方法
而是它把这些方法都已经封装好了
我们仅需要做的只是添加自己需要的一些方法
而对于我们训练项目来讲
实际默认的一些方法就已经足够我们使用了
但是为了说明一些问题
我们自己定义几个方法来展示一下
它相关的知识点
好
我们来看一下如何定义
dao对象
首先我们在默认的包上点击右键
因为在默认包上点右键时
它会自动的把这个包给我们加进来
然后我们选择接口
Java接口
在接口的类名中输入
UserRepositerry
用户数据库对象
把包名我们加上一个dao
表明我们这个是访问数据的
把它归类一下
好
点击完成
完成后
让我们的接口去继承
注意了,继承JPA它自己的接口Reporsitory
jpa这个接口接收两个泛型参数
第一个就是你用的是哪个实体
我们用的是user
第二个呢,是实体的主键是什么类型的
我们说我们用的是integer
把相关的类导进来
这样我们今已经有了访问数据库的基本方法
包括增删改查的这些基本操作
刚才我们也讲了
我们要演示一些功能
来添加几个方法
第一个我们需要的
一个查询方法
并且带有分页功能
我们让它返回配置对象
而这个配置对象里面
它存储的是user实体
我们的方法名用findBy
然后我们叫做keyword
关键字
关键字给出来
我们用字符串
kw
然后呢,因为要分页
对于spring jpa来讲
分页必须要提供一个对象叫pageable
你只需要传递这个对象
它就能够自动的给你分页
导入需要的类和接口
因为我们没有keyword属性
也就是说在user里边没有属性
jpa呢
springjpa它所定义的方法是按照findBy
这样的格式来定义的
通过属性的名称来定义我们的方法名
比如说findby aconte
我们通过账号来查询
或者findby name
我们通过name来查询
而by后边的单词都是在我们的user实体中
能够找到对应的相关属性
但是我们keyword是没有的
我们是一个自定义的查询方法
自定义查询
我们用query这个注解来实现
好
我们来查询我们的实体
查询实体的话
这个叫做JQL
就是jpa查询语言
它和我们使用的数据库的sql语言很类似
select这个动词就表示我们要查询
我们要查询谁呢
注意这个“u”
这个“u”呢,实际上是我们对实体user取得别名
这里边select的后边不能写星号
这和我们的circle语言还是有点区别的
我们就需要写别名U
然后我们加上where条件
where条件呢
我们使用的是关键字查询
所以我们这里边可以查多个字段
比如说我对account进行查询
而且可以是模糊查询或者是精准查询
如果精准查询的话
我们用等号如果是模糊查询的话
我们用“like”就可以了
对于“like'我们可以给出它
对应的参数的顺序
注意这个格式是问号加上序号
第一个呢,就是1
然后呢,我们再来
name
让这个name
如果说存在关键字的话也能出现
或者它可能是通过email电话号码来进行查询的
这样我们的circle语句就写好了
导入我们的注解query
那么在查询的时候
这个JPA它会根据我们传递的pageable
以及我们的返回类型pege来
自动为我们去计算结果的总个数
以及总页数
所以这些个都不需要我们做
对于分页我们仅仅需要做的就是两个
一个传递pageable
一个把返回类型用page
这是我们对于查询的一个自定义方法
还有一个就是我们需要修改实体的查询指令
我们修改密码
密码修改完成后
我们可以返回我们的实体
也可以不需要返回
modifyPassword
把新密码给过来
并且这里要注意给出uid你要注意这里面
我们设计文档中只有这一个
我们在修改的时候
就不能确定是修改哪一个用户的
因此你要在设计文档里把第二个参数给它加上
以表明我们对哪个用户进行修改
然后我们就可以写了
update
我们要修改的是user
然后set
设置它的值
u.password
等于第一个参数
条件是u.uid等于我们的第二个参数
这样我们把dao对象就定义好了
这就是我们对用户这个实体创建的访问对象
好
关于用户数据访问接口
咱们就讲到这里
下一节课咱们再见
-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随堂测试