问题一 : mybatis-plus 查询结果封装对象失败!
原因 : 需要在实体类@TableName 的 autoResultMap 值设置为 true ,默认是false;
结局方案:
@TableName(value = "ins_table",autoResultMap = true)
问题二 : 关于 @Service(“InsServiceImpl”) /** 注明 Service 名称! */
原因 : 初学第一次接触不晓得这个是干啥的!
解决方案 : 因为 Service 接口 有很多实现类,要注明,实现了的名字,方便controller层属性注入~
@Autowired
@Qualifier("InsServiceImpl") // 指定要装入的实现类名字! 当然在 service 实现类上要有 @Service(name = "val" ) 注解
private InsService insService;
问题三 : 后端参数校验 想要实现后端参数校验,但不会,查了好多资料终于是实现了
解决方案 :
pox.xml
<!-- 后端参数校验-->
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<!-- 后端数据校验-->
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
通过给形参加 @Validated 校验参数 ,并将校验结果存入 BindingResult 对象中;
具体详情:
controller
@RequestMapping("/addIns")
@ResponseBody
public Object insertIns(@Validated @RequestBody InsTable insTable, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return new Exception("参数不合法!");
}
Object o = insService.insertIns(insTable);
return "插入成功!";
}
实体类
@TableName(value = "ins_table",autoResultMap = true)
@AllArgsConstructor
@NoArgsConstructor
@Data
public class InsTable implements Serializable {
@TableId(value = "ins_numb",type = IdType.AUTO)
private Integer insNumb;
@TableField("ins_name")
@NotEmpty(message = "机构名不能为空!") // 限制前端传参这个字段不能为空(只能用在字符串上 )
private String insName;
@TableField("ins_address")
private String insAddress;
@TableField("ins_head")
private String insHead;
@TableField("contact")
private String contact;
@TableField("ins_logo")
private String insLogo;
@TableField("ins_status")
private Integer insStatus;
}