登录注册模板代码
密碼加密類
//MD5 生成器 public class MD5Utils {public static String md5(String password){//生成一個(gè)md5加密器try {MessageDigest md = MessageDigest.getInstance("MD5");//計(jì)算MD5 的值md.update(password.getBytes());//BigInteger 將8位的字符串 轉(zhuǎn)成16位的字符串 得到的字符串形式是哈希碼值//BigInteger(參數(shù)1,參數(shù)2) 參數(shù)1 是 1為正數(shù) 0為0 -1為負(fù)數(shù)return new BigInteger(1, md.digest()).toString(16);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;} }實(shí)體類
@Data @AllArgsConstructor @NoArgsConstructor @ApiModel(value = "User對(duì)象",description = "用戶或買家信息") public class User {private Integer 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;}Dao
public interface UserMapper {//用戶注冊(cè)public int insertUser(User user);//按照用戶名查詢用戶public User queryByName(String userName); } <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.pxl.dao.UserMapper"><insert id="insertUser" parameterType="User">insert into users (username,password,user_regtime,user_modtime)values (#{username},#{password},#{userRegtime},#{userModtime})</insert><select id="queryByName" resultType="User" >select * from users where userName=#{userName}</select></mapper>Service
public interface UserService {//用戶注冊(cè)public ResultVO userRegister(String name,String pwd);//用戶登錄public ResultVO checkLogin(String name, String pwd); } @Service public class UserServiceImpl implements UserService {@ResourceUserMapper userMapper;/*用戶注冊(cè)時(shí),需要考慮一個(gè)問題* 當(dāng)前用戶是否存在,即用戶名是否已經(jīng)存在* 同一時(shí)刻可能有多個(gè)用戶正在注冊(cè)* 保證注冊(cè)時(shí)用戶名唯一* 采用事務(wù)管理*/@Transactional@Overridepublic ResultVO userRegister(String name, String pwd) {synchronized (this) {//1,根據(jù)用戶名查詢,該用戶名是否已經(jīng)被注冊(cè)User user = userMapper.queryByName(name);//2,若該用戶名不存在,則進(jìn)行保存操作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 = userMapper.insertUser(user);if (i == 1) {//注冊(cè)成功return new ResultVO(10001, "注冊(cè)成功", null);} else {//注冊(cè)失敗return new ResultVO(10002, "注冊(cè)失敗", null);}} else {return new ResultVO(10000, "用戶名已存在", null);}}}@Overridepublic ResultVO checkLogin(String name, String pwd) {//1,根據(jù)賬號(hào)查詢信息User user = userMapper.queryByName(name);//2,判斷if(user == null){//用戶名不存在return new ResultVO(10001,"用戶名不存在",null);}else{//3.對(duì)輸入的密碼進(jìn)行加密String Md5Pwd = MD5Utils.md5(pwd);//使用加密后的密碼和user中的密碼進(jìn)行比對(duì)if(user.getPassword().equals(Md5Pwd)){//驗(yàn)證成功return new ResultVO(10000,"登錄成功",user);}else{//驗(yàn)證失敗return new ResultVO(10002,"密碼錯(cuò)誤",null);}}} }Controller
@RestController @RequestMapping("/user") @Api(value = "提供用戶的登錄和注冊(cè)接口",tags="用戶管理") public class UserController {@ResourceUserService userService;@ApiOperation("用戶登錄接口")@ApiImplicitParams({@ApiImplicitParam(dataType = "string",name = "username",value = "用戶登錄賬號(hào)",required = true),@ApiImplicitParam(dataType = "string",name="password",value = "用戶登陸密碼",required = true)})@GetMapping("/login") //查詢是GETpublic ResultVO login(@RequestParam("username") String name,@RequestParam(value = "password") String pwd){ResultVO resultVO = userService.checkLogin(name,pwd);return resultVO;}@ApiOperation("用戶注冊(cè)接口")//如果所需要的參數(shù)是對(duì)象類型的話,就不需要在這里寫注解,直接去對(duì)象的類里面寫// @ApiImplicitParam(name = "用戶信息",required = true)//參數(shù)是對(duì)象類型的時(shí)候,有些可以不寫,但是實(shí)體類需要引入swagger依賴@ApiImplicitParams({@ApiImplicitParam(dataType = "string",name = "username",value = "用戶登錄賬號(hào)",required = true),@ApiImplicitParam(dataType = "string",name="password",value = "用戶登陸密碼",required = true)})@PostMapping("/register")//添加是POSTpublic ResultVO register(String name,String pwd){ResultVO resultVO = userService.userRegister(name,pwd);return resultVO;} }測(cè)試
http://localhost:8080/doc.html
總結(jié)
- 上一篇: 米思齐学习例程(九):sin cos
- 下一篇: 树的知识总结