GirlController.java

package com.xs.controller;


import com.xs.domain.Girl;
import com.xs.domain.Result;
import com.xs.repository.GirlRepository;
import com.xs.service.GirlService;
import com.xs.utils.ResultUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;


import javax.validation.Valid;
import java.util.List;


/**
 * 直接在右边的文件框里编辑你说需要注释的东西,
 * 然后应用保存之后,当你创建类的时候就会自动生成注释。
 */
@RestController
public class GirlController {


    //打印输出方式 注意:里面的参数与类名保持一致:GirlController
    private final static Logger logger = LoggerFactory.getLogger(GirlController.class);


    @Autowired
    private GirlRepository girlRepository;


    @Autowired
    private GirlService girlService;


    // 查询所有女生列表
    @GetMapping(value = "/girls")
    public List<Girl> girlList() {
        logger.info("girlList方法调用中");
        //System.out.println("girlList方法调用中");
        return girlRepository.findAll();
    }




    //添加一个女生
    // 这个做了表单验证:即满足条件要求就添加进去,不满足就不能添加--进阶篇的第一讲


    //@PostMapping(value = "girls")
    //写法一:
    //public Girl girlAdd(@RequestParam("cupSize") String cupSize,
    //                    @RequestParam("age") Integer age) {
    //Girl girl = new Girl();
    //girl.setCupSize(cupSize);
    //girl.setAge(age);
    //写法二:当对象属性过多时候这样添加(推荐):将单个属性添加换成对象
    @PostMapping(value = "/girls")
    public Result<Girl> girlAdd(@Valid Girl girl, BindingResult bindingResult) {
        //在bean里面设置最小值标签,这里的 @Valid 注释表示要验证的对象,bindingResult:获取验证之后的返回结果
        //如果验证失败,打印结果
        if (bindingResult.hasErrors()) {


            //原始版-成功失败都要单独写
/*          Result result = new Result();
            result.setCode(1);
            result.setMsg(bindingResult.getFieldError().getDefaultMessage());
            //result.setData(null);//这里也可以不设置*/




            //优化版-封装方法
            //return null;    //测试让其报异常
            return ResultUtil.error(1,bindingResult.getFieldError().getDefaultMessage());
        }
        girl.setCupSize(girl.getCupSize());
        girl.setAge(girl.getAge());
        //原始版-成功失败都要单独写
/*        Result result = new Result();
        result.setCode(0);
        result.setMsg("成功");
        result.setData(girlRepository.save(girl));*/
        //优化版-封装方法
        return ResultUtil.success(girlRepository.save(girl));
    }


    //查询一个女生
    @GetMapping(value = "/girls/{id}")
    public Girl girlFindOne(@PathVariable("id") Integer id) {
        return girlRepository.findOne(id);
    }


    //跟新-记得传更新的内容
    @PutMapping(value = "/girls/{id}")
    public Girl girlUpdate(@PathVariable("id") Integer id,
                           @RequestParam("cupSize") String cupSize,
                           @RequestParam("age") Integer age) {


        Girl girl = new Girl();
        girl.setId(id);
        girl.setCupSize(cupSize);
        girl.setAge(age);
        //这里调用的也是save()方法
        // 跟新会根据你数据库设置的值:如id主键的值进行更新,返回的还是一个对象
        //用postman查询的时候注意选择Body选项里面第二个x-www-form-yrlencoded该选项
        return girlRepository.save(girl);
    }


    //删除
    @DeleteMapping(value = "/girls/{id}")
    public void girlDelete(@PathVariable("id") Integer id) {
        girlRepository.delete(id);
    }


    //通过年龄查询女生列表
    @GetMapping(value = "/girls/age/{age}")
    public List<Girl> girlListByAge(@PathVariable("age") Integer age) {


        return girlRepository.findByAge(age);
    }


    @PostMapping(value = "/girls/two")
    public void girlTwo() {
        girlService.insertTwo();
    }


    @GetMapping(value = "girls/getAge/{id}") //注意名称不要跟其他地方相同了,会报异常
    public void getAge(@PathVariable("id") Integer id) throws Exception{
        //逻辑代码要放在service层:其他地方没有放,以后写参考这里的写法
        girlService.getAge(id);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值