用户表基本结构
用户头像存放在三方服务器,显示三方服务器地址
Java采访驼峰命名方法,数据库采用下划线命名法。
自动生成get、set方法的工具
lombok:在编译阶段,为实体类自动生成setter getter toString
使用步骤:
pom文件中引入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
在实体上添加注解
测试是否添加
等待编译完成找到target文件夹
在三个实体类都加上注解@Data
接口返回的格式相同,单独创建一个result的实体类
返回类型统一为result
出现报错
添加注解
无参数的构造方法和有参数的构造方法
三层架构
从controller这层开始编写
编写UserController
package com.wxt.controller;
import com.wxt.pojo.Result;
import com.wxt.pojo.User;
import com.wxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
// 注册接口的请求方式是post,访问路径是register
@PostMapping("/register")
public Result register(String username,String password){
// 查询用户
// alt+enter导入user文件
User u=userService.findByUserName(username);
if(u == null){
// 没有占用
// 注册
userService.register(username,password);
return Result.success();
}else {
// 占用
return Result.error("用户名已被占用");
}
}
}
写完后会发现findByUserName,register报红
原因是service层为提高这样的方法
把光标放在标红处,alt+enter自动在service生成方法
实体类并没有实现这两个方法
把光标放在标红处,alt+enter自动快速生成方法
package com.wxt.service.impl;
import com.wxt.mapper.UserMapper;
import com.wxt.pojo.User;
import com.wxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
//把当前类对象注册到容器里面
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User findByUserName(String username) {
User u=userMapper.findByUserName(username);
return u;
}
@Override
public void register(String username, String password) {
// 加密
}
}
注册不能直接调用userMapper,首先需要对密码做一个加密的处理
密码加密 (Md5Util)
把Md5Util放在utils工具类
提供了getMD5String方法,会把明文密码转化成密文密码
继续编写Mapper层代码
@Mapper
public interface UserMapper {
// 根据用户名查找用户
@Select("select * from user where username=#{username}")
User findByUserName(String username);
// 添加
@Insert("insert into user(username,password,create_time,update_time)"+
"values(#{ username },#{password},now(),now())")
void add(String username, String password);
}
Postman进行测试
返回结果
控制台提示信息
在Result类加上注解
重新启动项目,进行测试,测试成功