在之前的文章中我已经把后端工程项目创建好了,接下来就是编写项目了。
首先,我先创建一个数据库。数据库使用的是MySQL,数据库管理工具用的是Navicat。
打开数据库管理工具Navicat,链接上数据库【数据库链接名随意填写,我填写的是localhost】,右击数据库链接名【下图中localhost处】-》新建数据库

创建好数据库之后,接下来就是新建数据表,数据表名及字段参考下图

数据表名请修改为t_user
到此,数据库已经创建完成。
使用STS打开之前创建好的后端项目工程,右击demoSpring包,新建用户实体类,参数参考下图

建好用户登录与注册实体类之后,复制粘贴以下代码
package demoSpring.entity;
public class UserEntity {
// 用户ID
private int id;
// 用户登录名
private String name;
// 用户登录密码
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
用户实体类建好之后,接下来就要建与数据库对应的xml文件了。【mapper类xml文件编写的都是数据库语句】
在src/main/resources目录下新建mappers目录,并在该目录下新建userMapper.xml文件,复制粘贴以下代码。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="demoSpring.dao.UserDao">
<resultMap id="UserResultMap" type="demoSpring.entity.UserEntity">
<id property="id" column="id" javaType="int" jdbcType="INTEGER"/>
<result property="name" column="name" javaType="String" jdbcType="VARCHAR"/>
<result property="password" column="password" javaType="String" jdbcType="VARCHAR"/>
</resultMap>
<insert id="userReg" parameterType="demoSpring.entity.UserEntity">
insert into t_user (id,name,password) values(#{id},#{name},#{password})
</insert>
<select id="getPasswordByName" resultType="String">
select password from t_user where name=#{name}
</select>
</mapper>
数据库查询语句写好之后,再创建与之对应的DAO层类文件。右击demoSpring包名,创建UserDao.java文件,参数如下图所示

复制粘贴以下代码
package demoSpring.dao;
import org.apache.ibatis.annotations.Mapper;
import demoSpring.entity.UserEntity;
@Mapper
public interface UserDao {
/**
* 用户注册方法
* @param userEntity
*/
int userReg(UserEntity userEntity);
/**
* 通过用户名称查找密码
* @param name
* @return
*/
String getPasswordByName(String name);
}
DAO层建好之后,接下来建Service层,右击demoSpring包名,新建接口文件,参数如下图

复制粘贴以下代码
package demoSpring.service;
import demoSpring.entity.UserEntity;
public interface UserService {
/**
* 用户注册
* @param userEntity
*/
int userReg(UserEntity userEntity);
/**
* 根据用户名和密码判断是否登录
* @param userEntity
* @return 1代表通过验证,2代表无该用户,3代表存在该用户但密码不对
*/
int userLogin(UserEntity userEntity);
}
Service层建好之后,接下来就是建Service层的实现层类文件,右击demoSpring包名,参数如下图所示

复制并粘贴以下代码
package demoSpring.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import demoSpring.dao.UserDao;
import demoSpring.entity.UserEntity;
import demoSpring.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
/**
* 用户注册实现方法
*/
@Override
public int userReg(UserEntity userEntity) {
// TODO Auto-generated method stub
int result = userDao.userReg(userEntity);
return result;
}
/**
* 用户登录实现方法
*/
@Override
public int userLogin(UserEntity userEntity) {
// TODO Auto-generated method stub
String password = userDao.getPasswordByName(userEntity.getName());
if (password == null || password == "") {
//未找到密码,数据库无用户信息
return 2;
} else if (password.equals(userEntity.getPassword())){
//用户密码匹配,验证通过
return 1;
} else if (!password.equals(userEntity.getPassword())){
//用户密码匹配,验证通过
return 3;
}
return 0;
}
}
实现类建好之后,最后就是新建Controller层了,右击demoSpring包名,参数如下图所示

复制并粘贴以下代码
package demoSpring.controller;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.coyote.Response;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import demoSpring.entity.UserEntity;
import demoSpring.service.UserService;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
/**
* 用户登录
* @param userEntity
* @param request
* @return
*/
@PostMapping("/login")
public Map<String, Object> login(@RequestBody UserEntity userEntity, HttpServletRequest request) {
Map<String, Object> map= new HashMap<>();
int result = userService.userLogin(userEntity);
if (result == 1) {
map.put("message", "登陆成功");
map.put("status", 200);
HttpSession session = request.getSession();
session.setAttribute("currentUser", userEntity);
}
if (result == 2) {
map.put("message", "该用户不存在");
map.put("status", 400);
}
if (result == 3) {
map.put("message", "密码不正确");
map.put("status", 400);
}
return map;
}
/**
* 用户注册
* @param userEntity
* @param request
* @return
*/
@PostMapping("/reg")
public Map<String, Object> reg(@RequestBody UserEntity userEntity, HttpServletRequest request) {
Map<String, Object> map = new HashMap<>();
int result = userService.userReg(userEntity);
if (result > 0) {
map.put("message", "注册成功");
map.put("status", 200);
} else {
map.put("message", "注册失败");
map.put("status", 400);
}
return map;
}
}
到此,后端工程项目已经编写完毕。可右击项目启动类文件,选择Run as -》Spring Boot App,启动项目
原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/spring-learn-user-login.html