从接受参数Request到业务层到Dao层的写法实现

整个流程,我们以修改用户个人信息为例子

  • 首先,我们需要一个来接收前端参数的类,例如ModifyPersonalInfoRequest
@Data
@ApiModel("修改个人信息参数")
public class ModifyPersonalInfoRequest {

    @ApiModelProperty("个人信息ID" , required = true)
    @NotNull(message = "个人信息ID不能为空")
    @Min(value = 1, message = "附件ID不正确")
    private Integer id;

    @ApiModelProperty(value = "姓名" , required = true)
    @NotBlank(message = "姓名不能为空")
    @Length(max = 10 , message = "最大长度为10")
    private String name;
	//就列举这两个吧,多的没必要
}
  • 然后是一个controller接口
@Api(value = "个人信息管理", tags = "个人信息管理")
@RestController
@RequestMapping("/test/person")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class AttachController {

	//因为有RequiredArgsConstructor这个注解哈,就不用@Autwired了,直接final修饰就好了
	private final PersonalBiz personalBiz; 

	//假如哈,你是用POST方法
    @ApiOperation("修改个人信息")
    @ResponseBody
    @PostMapping("/modifyPersonalInfo")
    public void modifyPersonalInfo(@RequestBody @Valid ModifyPersonalInfoRequest modifyPersonalInfoRequest ){
    	//转换哈参数,在biz解释了为什么,转换可以用BeanUtil里面的方法
    	//ModifyPersonalInfoRequest  - >  ModifyPersonalInfoBO
    	//这里调用biz的接口
    	personalBiz.modifyPersonalInfo(modifyPersonalInfoBO);
    }
}
  • 往后是一个Biz层,也就是service层
//先写个interface 抽象接口,然后继承这个接口实现方法
public interface PersonalBiz {
    //这里为什么是ModifyPersonalInfoBO 哈,一般在controller就转换了,把Request转换成Bo了,Bo是一个类,跟ModifyPersonalInfoRequest 差不太多,例如你可以理解成这个Bo里面是不止id和姓名的,还有性别呀,户籍啊什么的。
    Integer modifyPersonalInfo(ModifyPersonalInfoBO modifyPersonalInfoBO );
}

//然后就是写一个实现他的方法了 就不提行了
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class PersonalBizImpl implements PersonalBiz{
    //Dao引用就不解释了
    private final PersonalDao personalDao;
	//然后就是实现方法 巴拉巴拉的
	@Override
    public Integer modifyPersonalInfo(ModifyPersonalInfoBO modifyPersonalInfoBO ) {
       //做一些要做的事情啊
       LambdaQueryWrapper<PersonalEntity> queryWrapper = new LambdaQueryWrapper<>(PersonalEntity.class);
       //转换参数啊
       //做一下条件,逻辑啊什么的
       personalDao.updateById(personalEntity);
       // ---------------------------------就不详细说了
    }
  • 后面就是需要一个Entity去对应数据,到Dao层了
@Data
@TableName("personal_info")//数据名字啊
public class PersonalEntity{
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String name;
    //------一些参数啊
}


//然后一个Dao
@Mapper
public interface PersonalDao extends BaseMapper<PersonalEntity>{
}

我发现好像需要倒着写才对
正着写好像不对劲啊,哎,反正随手记录一下,写代码记住倒着写就行了 Dao - Biz - Controller

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值