上一篇我已经写了基于springboot来搭建的基础:https://blog.youkuaiyun.com/LiLrui/article/details/87916534。第二篇就来写下CRUD操作。
首先需要创建基本的几个包:dao,model,mapper,这些之前generator已经帮我们生成好了。所以还需要再手动创建service,controller,utils,common几个需要的包,大体先用到这些,另外的以后再补上
首先我需要一个统一格式的自定义jsonresult类,这个类帮助我们将所有数据已统一格式的形式返回出去,前端也会经常用到。
/**
* Created by Lilrui.
*/
@Data
@Slf4j
public class JsonResult {
private boolean ret;
private String msg;
private Object data;
public JsonResult(boolean ret,String msg) {
this.ret = ret;
this.msg=msg;
}
public static JsonResult success(Object object, String msg) {
JsonResult JsonResult = new JsonResult(true,msg);
JsonResult.data = object;
return JsonResult;
}
public static JsonResult success(Object object) {
JsonResult JsonResult = new JsonResult(true,"success");
JsonResult.data = object;
return JsonResult;
}
public static JsonResult success() {
return new JsonResult(true,"success");
}
public static JsonResult fail(String msg) {
JsonResult JsonResult = new JsonResult(false,msg);
return JsonResult;
}
}
然后暂时在service包里 写一个test测试类:
@Service
public class TestService implements SysUserMapper{
@Resource
private SysUserMapper sysUserMapper;
@Override
@Transactional(propagation = Propagation.REQUIRED)
public int deleteByPrimaryKey(Integer id) {
return sysUserMapper.deleteByPrimaryKey(id);
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public int insert(SysUser user) {
return sysUserMapper.insert(user);
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public int insertSelective(SysUser user) {
return sysUserMapper.insert(user);
}
@Override
@Transactional(propagation = Propagation.SUPPORTS)
public SysUser selectByPrimaryKey(Integer id) {
return sysUserMapper.selectByPrimaryKey(id);
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public int updateByPrimaryKeySelective(SysUser record) {
return sysUserMapper.updateByPrimaryKeySelective(record);
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public int updateByPrimaryKey(SysUser record) {
return sysUserMapper.updateByPrimaryKey(record);
}
@Override
@Transactional(propagation = Propagation.SUPPORTS)
public List<SysUser> selectAll() {
return sysUserMapper.selectAll();
}
}
在controller包下写测试接口:
/**
* Created by Lilrui.
*/
@RestController
@RequestMapping("/Test")
@Slf4j
public class TestController {
private final TestService testService;
public TestController(TestService testService) {
this.testService=testService;
}
@GetMapping("/findAll")
public JsonResult getAll() {
return JsonResult.success(testService.selectAll());
}
@PostMapping("/insert")
public JsonResult insert(SysUser user){
return JsonResult.success(testService.insertSelective(user));
}
@PostMapping("/update")
public JsonResult update(SysUser user) {
log.info("改动之前:{}",testService.selectByPrimaryKey(5));
testService.updateByPrimaryKeySelective(user);
log.info("改动之后:{}",testService.selectByPrimaryKey(5));
return JsonResult.success(testService.selectByPrimaryKey(5));
}
@PostMapping("/del")
public JsonResult delete(@Param(value = "id") Integer id){
testService.deleteByPrimaryKey(id);
return JsonResult.success();
}
}
因为只是测试下crud是否可以正常执行,所以就写简单点,接下来启动项目,然后用postman来进行测试:
查询操作是正常的,然后在测试添加,修改操作:
没有问题,已经成功回应了,看下数据库是否有这条字段:
注意,如果插入报错的话,很可能是时间字段报错,需要解析一下就可以,在对象字段上增加:
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date operateTime;
然后修改下刚才插入的记录,它的id是6,我们改个名字试试
也没有问题,最后测试下删除刚才插入的记录
以上的CRUD操作测试全部都没有问题,那么接下来就可以继续写后续的代码了,第三篇会写全局异常处理,Validator字段校验,以及AOP切面的编写。包括后台项目可能用到的工具类编写。