从数据库拿数据遇到的问题

组合对象的查询

  1. 写跨表查询的sql
  2. 定义对应的BO 对象
  3. ​resultType​​ 为BO 类型

组合对象一对多查询

select u.username,group_concat(r.name),min(r.priority) from user u left join user_role ur on u.id = ur.user_id left outer join role r on r.id = ur.role_id group by

数据之间的拷贝


BeanUtils.copyProperties()

时间的处理

  1. 如果需要序列化的 JsonForamt 来回都要jackjson 才能生效
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Person {

private Long id;

@Length(min = 2, max = 20, message = "姓名在2-10个字母之间")
private String name;
@Range(min = 0,max = 100,message = "年龄不在有效范围内")
private Integer age;
@NotNull
@JsonFormat( pattern = DatePattern.NORM_DATETIME_PATTERN,timezone="GMT+8")
private LocalDateTime birthday;
}
@PostMapping("/add/person")
public Collection<Person> addPerson(@Validated @RequestBody Person person){
persons.put(person.getId(),person);
return persons.values();
// return JSON.toJSONString(persons.values());
// final ObjectMapper objectMapper = new ObjectMapper();
// return objectMapper.writeValueAsString(persons.values());
}
  1. 本地日期序列化
final LocalDateTime now = LocalDateTime.now();
final String format = now.format(DatePattern.CHINESE_DATE_TIME_FORMATTER);
System.out.println(format);

字段的效验

在方法加 ​​Validated​


枚举类型的处理

  1. 将Integer 通过枚举解析

参考文档

​入门_MyBatis中文网​