从数据库拿数据遇到的问题
组合对象的查询
- 写跨表查询的sql
- 定义对应的BO 对象
-
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()
时间的处理
- 如果需要序列化的 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());
}
- 本地日期序列化
final LocalDateTime now = LocalDateTime.now();
final String format = now.format(DatePattern.CHINESE_DATE_TIME_FORMATTER);
System.out.println(format);
字段的效验
在方法加 Validated
枚举类型的处理
- 将Integer 通过枚举解析
参考文档
入门_MyBatis中文网