「实战教程」移动端项目开发实战教程(八、用户中心功能实现)

核心提示文章目录 前言 一、引入Lombok 1、为什么要用Lombok 2、引入相应的maven包 3、添加IDE工具对Lombok的支持 4、Lombok注解的使用 二、用户功能实现增删改查

文章目录

引言:1。介绍Lombok 1,为什么要用Lombok 2,介绍相应的maven包3,添加IDE工具支持Lombok 4,使用Lombok注释2。用户功能可增删查1、实体类2、业务接口3、业务接口实现类4、数据库查询接口实现5、数据库xml 6、接口层。

序

经过这么多天的项目基础建设,终于建立了基本的项目配置,项目日志,项目管理,数据库。你可能会遇到很多问题。当你遇到问题的时候,你首先要思考如何解决,而不是认为太难了。希望能给你一些帮助。最近可能更新比较慢,因为还有很多事情要做。我也在想怎么把这个项目做的更简洁,运行起来,让你有成就感,有自己学习的动力。好了,话不多说,以后有生活感悟可以找我私聊。让我们疯狂一下用户中心的功能。

用户中心主要是我们的账户管理,用户登录等。现在在考虑暂时不做权限角色管理。现在我只实现一个角色的用户登录。因为是自己的博客系统,目前只能自己开发。以后有时间的话,项目第二版更新的时候再做。第一版将首先构建基本的用户管理。

首先是龙目岛的介绍

1.为什么用龙目语?

lombok官方文档:https://projectLombok.org/features/all,在这个项目中,我们需要使用Lombok中的注释,这可以帮助我们节省大量重复的代码编写工作。正如俗话所说,任何技术似乎都是为了解决某一类问题。我们在学习基础知识的时候,都应该学习如何编写getter/setter/toString之类的代码。其实仔细想想,我们当时直接生成,会导致一个类里面有大量没有内容的代码。但是,Lombok会帮助我们省略这些代码,只需要添加一个注释,这是当前开发项目中经常使用的。

2.介绍对应的maven包。

org.projectlombok lombok 1.18.22

我们将这个maven包添加到项目的pom.xml中。然后单击刷新,等待加载完成。

3.添加IDE工具以支持Lombok

接下来,我们将在IDEA中安装这个Lombok插件,以方便我们的开发,并使我们的开发工具支持该功能。点击左上角的文件,然后选择设置打开,找到插件,在这里可以搜索到Lombok。如果没有找到,可能是网络的原因,还是看看你想法的版本吧。基本上2020最后一个版本以后的都可以用,我在第三章提供的IDEA工具绝对可以搜到。安装完成后,您可能需要重启IDEA。

4.Lombok注释的使用

我们首先使用的是@Data注释,它包含@Getter/@Setter方法。具体来说,还是用代码实现,实战讲解吧。一些具体的注解,可以参考我写的注解的文章:龙目核心注解摘要:https://blog.csdn.net/m0_37779600/article/details/120188115

第二,可以添加、删除和检查用户功能。

首先实现了用户列表的功能。这是从数据库中捞出数据,显示在后台管理页面上。这里的搜索会满足分页功能。虽然我们自己管理,账户不多,但毕竟是基础项目学习,所以还是用分页的方式来显示列表。

用户中心添加的常规类别目录参考:

1.添加实体类。

在类的顶部,添加了一个@Data注释。这个注释就是我们刚刚介绍的Lombok,可以帮助我们省略@Getter/@Setter方法。这是我们创建的用户实体对象。在我们创建的实体包中创建一个User.java类,然后将下面的代码添加到该类中。

包com . blog . personal blog . entity;进口龙目岛。数据;导入Java . time . local datetime;导入Java . util . date;@ data public class user {私有整数id;私有字符串用户名;私有字符串密码;privatestringmail;私人日期Last login time私人整数电话;私有字符串昵称;私有本地datetime createtime专用本地日期时间更新时间;}

2.添加业务接口

在我们创建的服务包中,我们创建了一个UserService.java类,这是一个接口类,它公开了我们的业务功能,可以被接口层调用。

这个类实现了用户的添加、删除、检查功能的界面,其中添加、修改、删除只需要在界面层返回一个成功或失败的消息,不需要返回任何数据。

打包com . blog . personal blog . service;导入com . blog . personal blog . entity . user;导入Java . util . list;public interface userservice {List find all;void create user;void update user;void deleteUser;}

3.添加业务接口实现类。

类实现了业务接口的功能。继承了这个接口,具体的业务逻辑就会写在这个类里,这一点很重要。同时与数据库接口连接,调用数据库接口,实现数据处理。在我们创建的Impl包中创建新的UserServiceImpl.java类,同时继承UserService接口,使用关键字implements继承接口。可以理解扩展和实现之间的具体差异。创建后是这样的,下面教大家一个快速创建接口实现的方法。

包com . blog . personal blog . service . impl;导入com . blog . personal blog . service . userservice;导入org . spring framework . stereotype . service;@ service public class userserviceimplements userservice { }

当您将鼠标悬停在报告错误的类上时,将出现以下错误消息,然后单击"实现方法"。此时,将弹出这个弹出框,其中包含我们刚刚在UserService.java创建的方法,然后单击OK。生成以下四种实现方法。

包com . blog . personal blog . service . impl;导入com . blog . personal blog . entity . user;导入com . blog . personal blog . service . userservice;导入org . spring framework . stereotype . service;导入Java . util . list;@ service public class userservice implements userservice { @ override public list find all { return null;} @覆盖公共void createUser { } @覆盖公共void updateUser { } @覆盖公共void deleteUser { }}

接下来,我们讨论数据库接口的方法。我们需要四个用户数据库操作接口。接下来我们处理Mapper包,相当于dao层。

4.数据库查询接口的实现

在我们创建的映射器包中,创建一个UserMapper.java接口。这里,我们在传递参数时使用@Param注释。当传递多个条件时,通常使用该注释。当然我们这里的业务没那么复杂,用一个条件就能用,所以我们这里用它来拓宽知识面。

@Param注释的作用是给参数命名,参数命名后可以根据名称得到参数值,并可以正确的将参数传入sql语句中。

包com . blog . personal blog . mapper;导入com . blog . personal blog . entity . user;导入org . Apache . ibatis . annotations . param;导入org . spring framework . stereotype . repository;导入Java . util . list;@ Repository公共接口Usermapper {List find all;void插入用户user);void更新用户user);int Delete int id);}

此时,您可能会看到UserMapper类上有一个附加的@Repository注释。这个注释是做什么用的?@repository需要在Spring中配置扫描包地址,然后生成dao层的bean,再注入ServiceImpl。如果没有添加在引用mapper类调用dao层的处理的实现类中,那么在使用@Autowired注释时会用红线标记,找不到bean。添加完这个之后,我们需要注释启动类,添加mapper包的地址,这样我们就可以正常使用Mapper接口了。

也可以使用@mapper,这样就不需要在springboot启动类上配置扫描地址了。而是mapper.xml中的namespace属性对应相关的mapper类,spring会动态生成Bean,并将它们注入ServiceImpl。

5.编写数据库xml

我们在resources文件下的Mapper文件夹中创建一个新的UserMapper.xml文件,在这里我们放置了对数据库的操作和一些SQL语句。此时,因为我们在UserMapper类中使用了@Repository注入,所以我们必须在startup类中添加一个扫包注释来扫Mapper包的接口类。开始上课的完整代码:

包com . blog . personal blog;导入org . mybatis . spring . annotation . mapper scan;导入org . spring framework . boot . spring application;导入org . spring framework . boot . auto configure . spring boot application;@ spring boot application @ MapperScanpublic类PersonalBlogApplication { public static void main { spring application . run;}}

让我们开始编写xml文件。这样写的具体原因我就不说了。官方文件有详细的介绍。Mybatis文档:file/tupian/20220829/sqlmap-xml.html XML version = " 1.0 " encoding = " UTF-8 " > select * from person _ user;插入到个人用户值更新个人用户用户名= # {用户名},密码= # {密码},电子邮件= # {电子邮件},最后登录时间= # {最后登录时间},电话= # {电话},昵称= # {昵称}其中id = #{id}从个人用户中删除其中id = #{id,jdbcType =整数}

数据库的接口已经基本完成,接下来实现类的方法的函数还没写。接下来,回到UserServiceImpl.java类,我们将首先介绍映射器接口类。@Autowired annotation,可以标记类成员变量、方法和构造函数来完成自动组装。

@ auto wired user mapper user mapper;

接下来,我们使用用户映射程序调用用户映射程序中函数的接口。

包com . blog . personal blog . service . impl;导入com . blog . personal blog . entity . user;导入com . blog . personal blog . mapper . user mapper;导入com . blog . personal blog . service . userservice;导入org . spring framework . beans . factory . annotation . auto wired;导入org . spring framework . stereotype . service;导入Java . util . list;@ service public class userservice implements userservice { @ autowired user mapper;@ Override public List find all { List userList = user mapper . find all;返回用户列表;} @覆盖public void create user { user mapper . insert;} @覆盖public void update user { user mapper . update;} @覆盖public void deleteUser { user mapper . delete;}}

至此,基本的业务功能到现在都已经完成了,但是我们查出来的数据怎么对外公开呢?如前所述,我们的项目是一个前端和后端分离的项目,这意味着我们的后端服务是与前端和后台管理的页面分开部署的,所以需要通过接口来调用它们。每个接口都代表了一些功能的实现,那我们就开始写控制器层的代码吧。

6.写接口层。

在写控制器类之前,我们还需要做一件事,就是需要封装一个返回类,可以作为我们返回数据的类型,统一设置返回格式,方便前端调用。我在这里定义了一个返回类,以后所有接口都要用它来返回数据,返回错误信息,供前端参考。在我们构建的util包中创建一个新的JsonResult.java类,并将我们设置的统一返回格式放入其中。三个返回的参数一个是返回数据,一个是错误代码,一个是错误信息。JsonResult.java的完整代码:

包com . blog . personal blog . util;导入Java . io . serializable;public class JSON result实现serializable { private static final long serialversionuid = 1l;public static final int success = 200;public static final int error = 500;私有int代码;私有字符串msg私人测试数据;公共静态JsonResult成功{ return jsonResult}公共静态JsonResult成功{ return jsonResult}公共静态JsonResult错误{ return jsonResult}公共静态JsonResult错误{ return jsonResult}公共静态JsonResult错误{ return jsonResult}私有静态JSON result JSON result { JSON result result = new JSON result;result.setCoderesult.setDataresult.setMsg返回结果;} public int getCode {返回代码;} public void set code { this . code = code;}公共字符串getMsg { return msg} public void setMsg { this . msg = msg;} public T getData { return data} public void setData { this . data = data;}}

然后在控制器包中创建新的UserController.java类,然后引入我们的Userservice类实现业务接口的调用。UserController.java的完整代码:

包com . blog . personal blog . controller;导入com . blog . personal blog . util . JSON result;导入com . blog . personal blog . entity . user;导入com . blog . personal blog . service . userservice;导入org . spring framework . beans . factory . annotation . auto wired;导入org . spring framework . web . bind . annotation . *;导入javax . validation . valid;导入Java . util . list;@ rest controller @ requestmapping public class user controller { @ autowired userservice userservice;@ post映射公共JSON结果列表{ list userlist = userservice . find all;返回JsonResult.success}@ post映射公共JSON结果用户创建{ userservice.createuser返回JsonResult.success}@ postmapping公共JSON结果用户更新{ userservice.updateuser返回JsonResult.success}@ post mapping public JSON result user delete int id){ user service . delete user;返回JsonResult.success}}

我们在上面的代码中使用了很多注释,我在之前的注释文章中也写了很多。这里我就介绍这两条评论。● @RequestBody:主要用于接收前端传到后端的json字符串中的数据● @Valid:用于验证评论是否符合要求,直接放在变量user之前,在变量中添加验证信息的要求。当它不满足要求时,它将在方法中返回message的错误消息。当我们用@Valid注释时,我们需要添加依赖项,如下所示,并将依赖项添加到pom.xml

验证验证-api 2.0.1.Final

好了,到目前为止,用户中心的基本功能都实现了,但是还有很多工作要做,写完了。现在,我们是否可以通过接口进行数据操作,例如加密和存储用户密码等。后来我们也在慢慢完善界面,这个界面有点长,所以一直到下一部才会测试界面。嗯,最近比较忙,更新比较慢,请谅解。

上一篇:Spring Boot+Vue+移动项目开发实用教程下一篇:Spring Boot+Vue+移动项目开发实用教程

,https://blog . csdn . net/m0 _ 37779600/article/details/121185708

 
友情链接
鄂ICP备19019357号-22