반응형
MySQL 연동은 우당탕탕이었지만 어떻게 성공적으로 완료하고 select문이 정상적으로 실행되는 것까지 확인했다.
내가 사용한 테이블은 아래 사진과 같음.
이번에 터진 에러는 POST 방식으로 파라미터를 받아오는 과정에서 생겼다.
첫번째 문제 - Mybatis 에러 (에러코드를 잊어버렸다...)
형변환이 문제인 줄 알고 birthDay 객체의 타입을 LocalDate에서 String으로 바꾸고 시도했더니 이번엔 db에서 에러가 떴다.
알고보니 Mybatis 문법 자체를 틀려서 나타나는 에러였다...
에러난 mapper.xml
<insert>
INSERT INTO user
(
`name`
, `birth_day`
)
VALUES
(
`name` = ${name}
, `birth_day` = ${birthDay}
)
</insert>
옳은 문법
<insert>
INSERT INTO user
(
`name`
, `birth_day`
)
VALUES
(
${name}
, ${birthDay}
)
</insert>
몇시간동안 머리를 싸맸는데 이걸 발견을 못해서 허탈했음...
아마 다신 이런 실수는 안할 것 같다.
두번째 문제 - String 타입인 파라미터를 LocalDate 타입으로 변환하지 못함
위의 문법 문제를 해결하고 다시 birthDay 객체의 타입을 LocalDate로 변환했는데 형변환 에러가 나타났다.
dependency들은 대부분 최신 버전이었고 spring boot 버전은 2.6.2였는데
우선 spring boot 버전을 2.6.3으로 바꾼 후에
UserDto의 birthDay 객체 위에 @DateTimeFormat 어노테이션을 붙여주니 해결 되었다.
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UserDto {
private int id;
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate birthDay;
}
원래는 자동으로 형변환을 해줘야한다고 하는데 우선 이렇게 에러가 잡히긴 했으니 더 고민해 봐야겠다.
반응형
'Study > Trouble Shooting' 카테고리의 다른 글
[삽질로그] Entity 관련 삽질 (0) | 2022.06.08 |
---|---|
[삽질로그] 깃 잔디가 안심어지는 문제 (0) | 2022.05.16 |
[삽질로그] 파이썬 missing 1 required positional argument: 에러 (0) | 2022.05.15 |
[삽질로그] Unsupported class file major version 61 에러 (0) | 2022.04.03 |
[삽질로그] Mybatis를 이용하여 MySQL 연동하기 삽질로그 (0) | 2022.02.20 |