springboot+vue+实战项目之第4集(代码片段)

Panda_Java Panda_Java     2022-12-31     529

关键词:

1. 实现流程

2. 后端接口开发

2.1 完成DAO操作

  1. 创建实体类
	@Data
	@NoArgsConstructor
	@AllArgsConstructor
	@ApiModel(value = "User对象",description = "⽤户/买家信息")
	public class User 
		 private int userId;
		 private String username;
		 private String password;
		 private String nickname;
		 private String realname;
		 private String userImg;
		 private String userMobile;
		 private String userEmail;
		 private String userSex;
		 private Date userBirth;
		 private Date userRegtime;
		 private Date userModtime;

  1. 创建DAO接口、定义操作⽅法
public interface UserDAO 
 	//⽤户注册
	 public int insert(User user);
 
	 //根据⽤户名查询⽤户信息
	 public User query(String name);
;
  1. 创建DAO接口的mapper⽂件并完成配置
<mapper namespace="com.qfedu.fmmall.dao.UserDAO">
 	<insert id="insertUser">
 		insert into users(username,password,user_regtime,user_modtime)
					 values(#username,#password,#userRegtime,#userModtime)
 	</insert>
 	<resultMap id="userMap" type="User">
		 <id column="user_id" property="userId"/>
		 <result column="username" property="username"/>
		 <result column="password" property="password"/>
		 <result column="nickname" property="nickname"/>
		 <result column="realname" property="realname"/>
		 <result column="user_img" property="userImg"/>
		 <result column="user_mobile" property="userMobile"/>
		 <result column="user_email" property="userEmail"/>
		 <result column="user_sex" property="userSex"/>
		 <result column="user_birth" property="userBirth"/>
		 <result column="user_regtime" property="userRegtime"/>
		 <result column="user_modtime" property="userModtime"/>
 	</resultMap>
 	<select id="queryUserByName" resultMap="userMap">
 		select
			 user_id,
			 username,
			 password,
			 nickname,
			 realname,
			 user_img,
			 user_mobile,
			 user_email,
			 user_sex,
			 user_birth,
			 user_regtime,
			 user_modtime
		from users
		where username=#name
 	</select>
</mapper>

2.2 完成Service业务

  1. 创建service接口
	public interface UserService 
		 //⽤户注册
		 public ResultVO userResgit(String name, String pwd);
 		 //⽤户登录
 		 public ResultVO checkLogin(String name, String pwd);

  1. 创建service接口实现类,完成业务实现
@Service
public class UserServiceImpl implements UserService 

	 @Autowired
	 private UserDAO userDAO;
	 
 	@Transactional
 	public ResultVO userResgit(String name, String pwd) 
 		synchronized (this) 
 	//1.根据⽤户查询,这个⽤户是否已经被注册
		 User user = userDAO.queryUserByName(name);
    //2.如果没有被注册则进⾏保存操作
 		if (user == null) 
 			 String md5Pwd = MD5Utils.md5(pwd);
			 user = new User();
			 user.setUsername(name);
			 user.setPassword(md5Pwd);
			 user.setUserRegtime(new Date());
			 user.setUserModtime(new Date());
			 int i = userDAO.insertUser(user);
			 if (i > 0) 
			 	return new ResultVO(10000, "注册成功!", null);
			  else 
			 	return new ResultVO(10002, "注册失败!", null);
			 
			  else 
			 	return new ResultVO(10001, "⽤户名已经被注册!", null);
			 
		 
		 @Override
		 public ResultVO checkLogin(String name, String pwd) 
 				User user = userDAO.queryUserByName(name);
				if(user == null)
					 return new ResultVO(10001,"登录失败,⽤户名不存在!",null);
				 else
				 String md5Pwd = MD5Utils.md5(pwd);
				 if(md5Pwd.equals(user.getPassword()))
				 	return new ResultVO(10000,"登录成功!",user);
				 else
					 return new ResultVO(10001,"登录失败,密码错误!",null);
	   
 

2.3 完成Controller提供接口

  1. 创建controller,调⽤service
  2. 添加接口注解
@RestController
@RequestMapping("/user")
@Api(value = "提供⽤户的登录和注册接⼝",tags = "⽤户管理")
	public class UserController 
		 @Resource
		 private UserService userService;
 		 @ApiOperation("⽤户登录接⼝")
 	     @ApiImplicitParams(
         @ApiImplicitParam(dataType = "string",name = "username", value = "⽤户登录账
号",required = true),
 		 @ApiImplicitParam(dataType = "string",name = "password", value = "⽤户登录密
码",required = true)
 )
 		 @GetMapping("/login")
 		 public ResultVO login(@RequestParam("username") String name,
    	 @RequestParam(value = "password") String pwd)
 		 ResultVO resultVO = userService.checkLogin(name, pwd);
         return resultVO;
      
		 @ApiOperation("⽤户注册接⼝")
		 @ApiImplicitParams(
		 @ApiImplicitParam(dataType = "string",name = "username", value = "⽤户注册账
		号",required = true),
		 @ApiImplicitParam(dataType = "string",name = "password", value = "⽤户注册密
		码",required = true)
		)
 		@PostMapping("/regist")
	    public ResultVO regist(String username,String password)
 			ResultVO resultVO = userService.userResgit(username, password);
		    return resultVO;
    

2.4 接口测试

基于swagger进行测试

springboot+vue+实战项目之第3集(代码片段)

SpringBoot+vue+实战项目--锋迷商城1.《锋迷商城》业务流程设计-接⼝规范1.1前后端分离与单体架构流程实现的区别1.1.1单体架构1.1.2前后端分离架构1.2接口介绍1.2.1接口概念1.2.2接口规范1.3Swagger1.3.1作用1.3.2Swagger整合1.3.3Swagger注... 查看详情

springboot+vue+实战项目之第2集(代码片段)

SpringBoot+vue+实战项目--锋迷商城1.Maven聚合工程1.1Maven聚合工程概念1.2创建Maven聚合工程1.2.1创建Maven父工程1.2.2创建Module1.3Maven聚合工程依赖继承1.3.1依赖继承1.3.2依赖版本管理2.《锋迷商城》项目搭建2.1技术储备2.2创建Maven聚... 查看详情

java网络商城项目springboot+springcloud+vue网络商城(ssm前后端分离项目)八(文件的上传fastdfs和校验)(nginx的请求前缀配置,在发布项目的时候要注意)(代(代

一、品牌新增功能(图片上传)1、新建一个微服务:文件的上传的微服务2、添加依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi& 查看详情

第二季springboot+vue前后端分离项目实战笔记(代码片段)

配套视频在b站:【第二季】全网最简单但实用的SpringBoot+Vue前后端分离项目实战SpringBoot+Vue项目实战第二季一、些许优化刷新丢失其它标签页缓存已打开标签页tagsViewCache()window.addEventListener("beforeunload",()=>letta... 查看详情

精通系列springboot集成elasticsearch+项目实战(代码片段)

Java之ElasticSearch7.x.x+SpringBoot+爬虫+项目实战【一篇文章精通系列】【SpringBoot集成ElasticSearch+项目实战】一、ElasticSearch的Java官方文档1、查看官方文档2、找到了原生的依赖3、初始化二、创建SpringBoot项目1、创建项目2、... 查看详情

springboot+vue实战wiki

1、idea设置encodingmavencompileauto2、versioncontrolcrtl+d进行代码对比3、crtl+r替换4、mybatis插件5、ideahttp文件6、将布局写在app.vue,将各页面变化部分放各自路由页面 查看详情

个人项目实战2,springboot集成(html+vue.js)前端框架(代码片段)

文章目录前言一,导入VUE组件库二,springboot引入html1,springboot配置文件中配置静态资源2,编写一个html3,关键代码(1)引入饿了么CSS(2)引入关键JS(3)编写页面body内容(4)... 查看详情

基于vue+vue-cli+webpack搭建渐进式高可维护性前端实战项目(代码片段)

   本文是专栏《Vue+SpringBoot前后端分离项目实战》的实战第一篇,将从Vue脚手架安装开始,逐步带你搭建起一套管理系统所需的架构。当然,在默认安装完成之后,会对文件目录进行初步的细化拆分,以... 查看详情

基于springboot+springcloud+vue前后端分离项目实战--开篇(代码片段)

...强强联手(天狗组合)专栏作者简介专栏的优势后端规划1.SpringBoot和SpringCloud的选择2.Mybatis和MybatisPlus和JPA的选择3.MySQL和Mongodb的选择4.Redis和RocketMQ5.后端规划小总结后端大纲提前掌握的知识点一期SpringBoot二期SpringCloudAlibaba微服务全... 查看详情

springboot之第一个springboot程序(代码片段)

...nish。启动之后:右下角选择自动导入。2、在pom.xml中导入springboot相关依赖<?xmlversion="1.0"encoding="UTF-8"?><projec 查看详情

15个优秀开源的springboot学习项目

SpringBoot算是目前Java领域最火的技术栈了,松哥年初出版的《SpringBoot+Vue全栈开发实战》迄今为止已经加印了8次,SpringBoot的受欢迎程度可见一斑。经常有人问松哥有没有推荐的SpringBoot学习资料?当然有!买松哥书就对了,哈哈... 查看详情

项目部署vue+springboot前后分离个人博客项目实战部署保姆教程linux+docker安装部署启动一条龙教程(代码片段)

目录SpringBoot开源项目部署在75元阿里云centos7上,小白手把手教程技术栈系统环境需求后端部署步骤redis配置前端域名从如何拥有个人服务器和域名开始说起。在职程序员教你如何选择个人服务器和个人域名,让自己变得IT... 查看详情

最火的13个springboot实战开源项目推荐!总有一款适合你

...om/Snailclimb/…Guide哥注:下面这些推荐的项目几乎都和SpringBoot有关,毕竟这年头没有理由再搞SSM/SSH这些东西了。商城系统Guide哥注:下面的商城系统大多比较复杂比如mall,如果没有Java基础和SpringBoot都还没有摸熟的话不推荐过... 查看详情

springboot之第一个应用helloworld(代码片段)

新建一个maven项目 pom.xml增加如下配置<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.co 查看详情

shiro三连斩之第三斩,整合springboot

shiro爱springboot中使用,还有thymeleaf前端框架。主要是如何配置pom.xml配置依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 查看详情

springboot知识体系+vue3实战wiki知识库系统笔记demo4_mybatis_example(代码片段)

SpringBoot知识体系+Vue3实战WIKI知识库系统笔记前端将参数传到后台。这里接收参数可以不加修饰的@,参数会自动绑定到同名的属性上。这里也可以使用对象。前端传来的参数可以自定绑定到对象的属性里面。要保证名字... 查看详情

基于java+springboot+vue+element驾校管理系统设计和实现(代码片段)

...藏)目录一、前言介绍:二、主要技术: 2.1SpringBoot框架介绍:2.2MYSQL数据库:三、系统设计:3.1系统架构设计:3.2 登录时序图设计:四、功能截图: 4.1登录注册:4.2前端页面:4.2.1系... 查看详情

基于java+springboot+vue+element驾校管理系统设计和实现(代码片段)

...藏)目录一、前言介绍:二、主要技术: 2.1SpringBoot框架介绍:2.2MYSQL数据库:三、系统设计:3.1系统架构设计:3.2 登录时序图设计:四、功能截图: 4.1登录注册:4.2前端页面:4.2.1系... 查看详情