-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
13강 데이터 베이스 연결문제..?
24.05.05 16:14 작성 조회수 76
0
13강을 듣고 데이터베이스를 연결했는데 이름과 나이를 등록하면 둘다 빈칸으로 떠요. 터미널에서 mysql 조회해보면 이름 나이 다 잘 뜨는데 왜 그럴까요? 수정,삭제 기능도 안되구요ㅠㅠ
답변을 작성해보세요.
1
최태현
지식공유자2024.05.06
안녕하세요 주희님!! 기능이 동작하지 않다니 답답하시겠어요! 🥺
"이름과 나이를 등록하면 둘 다 빈칸으로 떠요" 라고 말씀해주신게 어떤 상황인지 화면을 보여주시면 조금 더 문제를 파악하는데 도움이 될 것 같습니다!
현재 작성하신 코드도 스크린샷 등으로 함께 올려주시면 확인해볼 수 있을 것 같아요!
감사합니다! 🙏
최태현
지식공유자2024.05.07
넵넵 확인했습니다! 현재 DB는 어떻게 되어 있고, 어떤 데이터가 들어 있나요?
desc [테이블 이름]
select * from [테이블 이름]
이 두 가지를 사용하시면 됩니다!
최태현
지식공유자2024.05.07
엇! 정말 이상하군요!! 현재 상황을 정리하면 이렇습니다.
화면에서 데이터 "개수"는 잘 보이는데 사용자 이름 / 나이가 이상하게 보인다.
실제로 DB에는 데이터가 정상적으로 잘 들어 있다.
그렇다면 저는 조회 하는 로직을 가장 첫 번째로 의심해볼 것 같아요!
조회 하는 로직을 확실히 의심하기 위해서는 API 응답이 어떻게 오는지도 확인해보면 좋은데요, 웹 UI를 사용하는 대신 post man을 이용해 해당 GET API 응답을 체크해보시면 좋습니다.
조회하는 로직은 특히 아래 부분을 볼 것 같습니다.
getUsers()
함수 (즉 GET API) 에서
return jdbcTemplate.query(sql, (rs, rowNum) -> {
// 데이터를 가져온다
return new UserResponse(id, name, age);
});
와 같이 되어 있는데 아래와 같이 System.out.println 등을 활용해서 데이터를 찍어볼 것 같습니다.
return jdbcTemplate.query(sql, (rs, rowNum) -> {
// 데이터를 가져온다
System.out.printf("이름 : %s\n", name); // <- 이렇게 확인해보고,
UserResponse r = new UserResponse(id, name, age);
System.out.printf("이름 : %s\n", r.getName()); // <- UserResponse에도 잘 들어 있는지 확인해보고
});
정말 데이터를 잘 가져왔는지, new UserResponse
를 했을 때 정말 이름과 나이가 잘 담기는지 체크해보시면 좋을 것 같아요!
답변 1