登录-01.基础登录功能
- 软件开发
- 2025-08-24 07:51:01

一.需求分析 当前的页面不需要登录就可以进入,十分不安全,因此要设置登录功能来维护系统的安全性。登录时要根据输入的用户名和密码进行登录校验,如果在数据库中没有找到匹配的用户名和密码的话,那么就无法登录。 因此要先根据用户名和密码查找对应的用户。 二.接口文档
响应的data是JWT令牌,目前先不用管。 三.登录-思路 首先我们要分析一下controller层如何接受前端所传递过来的JSON格式的数据。因为前端所传递过来的数据是JSON格式的,因此要在形参前面加上注解@RequestBody,此外登录的url是"/login",因此我们要新定义一个Controller的类,就是LoginController,而且请求方式为POST,因此要加上注解@PostMapping。 service和mapper接口并不需要定义新的,因为我们操作的其实就是员工的信息进行校验,因此直接在EmpService和EmpMapper中编写校验代码就行。 四.Controller层 package com.gjw.controller; import com.gjw.pojo.Emp; import com.gjw.pojo.Result; import com.gjw.service.EmpService; import com.gjw.util.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @Slf4j @RestController public class LoginController { @Autowired private EmpService empService; @PostMapping("/login") public Result result(@RequestBody Emp emp) { log.info("用户登录:{}",emp); Emp e = empService.login(emp); return e!= null?Result.success():Result.error("用户名或密码错误!"); } } 五.service层 接口 package com.gjw.service; import com.gjw.pojo.Emp; import com.gjw.pojo.PageBean; import java.time.LocalDate; import java.util.List; public interface EmpService { PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end); void delete(List<Integer> ids); void save(Emp emp); Emp getById(Integer id); void update(Emp emp); Emp login(Emp emp); } 实现类 package com.gjw.service.impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.gjw.mapper.EmpMapper; import com.gjw.pojo.Emp; import com.gjw.pojo.PageBean; import com.gjw.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Service public class EmpServiceImpl implements EmpService { /* @Autowired private EmpMapper empMapper; @Override public PageBean page(Integer page, Integer pageSize) { // 1.获取总记录数 Long total = empMapper.count(); // 2.获取每页的员工列表记录 Integer start = (page - 1) * pageSize; List<Emp> rows = empMapper.page(start, pageSize); // 3.将其封装在一个PageBean对象中返回 PageBean pageBean = new PageBean(total,rows); return pageBean;*/ @Autowired private EmpMapper empMapper; @Override public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) { // 1. 设置分页参数 PageHelper.startPage(page,pageSize); // 2. 执行查询 List<Emp> empList = empMapper.list(name, gender, begin, end); // list集合中封装的是查询到的分页结果,要将其强转为page类型 Page<Emp> p = (Page<Emp>) empList; // 强转为page类型 // 3. 返回封装的pageBean对象 PageBean pageBean = new PageBean(p.getTotal(), p.getResult()); return pageBean; } @Override public void delete(List<Integer> ids) { empMapper.delete(ids); } @Override public void save(Emp emp) { emp.setCreateTime(LocalDateTime.now()); emp.setUpdateTime(LocalDateTime.now()); empMapper.insert(emp); } @Override public Emp getById(Integer id) { return empMapper.getById(id); } @Override public void update(Emp emp) { emp.setUpdateTime(LocalDateTime.now()); empMapper.update(emp); } @Override public Emp login(Emp emp) { return empMapper.getByUsernameAndPassword(emp); } } 六.mapper层 package com.gjw.mapper; import com.gjw.pojo.Emp; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.time.LocalDate; import java.util.List; /** * 员工管理 */ @Mapper public interface EmpMapper { /* @Select("select * from emp limit #{start},#{pageSize}") public List<Emp> page(Integer start, Integer pageSize); @Select("select count(*) from emp") public Long count(); */ /* @Select("select * from emp ") public List<Emp> list(); */ public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end); void delete(List<Integer> ids); @Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) " + "VALUES " + "(#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime} )") void insert(Emp emp); @Select("select * from emp where id = #{id}") Emp getById(Integer id); void update(Emp emp); @Select("select * from emp where username = #{username} and password = #{password}") Emp getByUsernameAndPassword(Emp emp); @Delete("delete from emp where dept_id = #{id}") void deleteByDeptId(Integer id); }
登录-01.基础登录功能由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“登录-01.基础登录功能”