멤버클라이언트를 정상적으로 한바퀴 돌리기를 실습하다 비밀변호 변경에서 만난에러다
🔎원인분석
에러 문구를 해석해보면 입력해야할 파라미터가 2개인데 그중 2번째 값을 입력하지 않아서 발생한 오류다

콘솔에 보이는 비밀번호 변경 화면
else if(command == 2) {//비밀번호 변경
MemberDTO memberDTO = new MemberDTO();
System.out.println("비밀번호 변경할 아이디 입력 >> ");
memberDTO.setMid(sc.next());
System.out.println("변경할 비밀번호 입력 >> ");
memberDTO.setMpw(sc.next());
memberService.updateMember(memberDTO);
System.out.println("비밀번호 변경 완료");
내가 입력한 값
비밀번호 변경할 아이디 입력 >> user02
변경할 비밀번호 입력 >> 1234
틀린게 없는데? 싶어서 DB를 확인했더니

이름과 아이디,비번에 제대로된 값이 저장되지 않는것을 확인했다
🛠️해결방법
1. DB에 저장되는 순서 수정하기
현재 SQL문과 멤버DAO
INSERT INTO MEMBER VALUES('user02','1234','아무개','test@test.com','USER');
pstmt = conn.prepareStatement(INSERT);
pstmt.setString(1, memberDTO.getMname());
pstmt.setString(2, memberDTO.getMid());
pstmt.setString(3, memberDTO.getMpw());
pstmt.setString(4, memberDTO.getMemail());
현재 멤버 DAO가 입력받는 순서와 컬럼에 지정된 순서가 다르기 때문에
- MID ← MNAME 값 (ooo)
- MPW ← MID 값 (user02)
- MNAME ← MPW 값 (1234)
로 저장이 된것이다
따라서 DAO를 컬럼 순서에 맞게 수정해야한다
pstmt = conn.prepareStatement(INSERT);
pstmt.setString(1, memberDTO.getMid());
pstmt.setString(2, memberDTO.getMpw());
pstmt.setString(3, memberDTO.getMname());
pstmt.setString(4, memberDTO.getMemail());
DB를 확인해보면

이렇게 각컬럼에 값이 잘 저장된것을 확인할수 있다
2.비밀번호 변경되는지 확인
콘솔을 통해 새로 회원가입을 해주고 비밀번호 변경을 시도했다

콘솔에는 비밀번호 변경 완료가 출력됐고 DB에도 변경된 비밀번호로 잘 저장되있는것을 확인했다

'🐢🐢꼬부기 LV.2 | 실습•에러 > 🛡️껍질에 숨기(에러해결)' 카테고리의 다른 글
| 스프링 부트 Failed to configure a DataSource 에러 해결 (0) | 2026.01.30 |
|---|---|
| 스프링 부트 과제 에러 해결 (0) | 2026.01.19 |
| NoSuchBeanDefinitionException (0) | 2026.01.14 |
| 팀프로젝트 카카오 로그인 API 연동 에러 정리 (0) | 2025.12.31 |
| 주문내역 페이지 구현과 샘플테이터 생성 오류 해결 (0) | 2025.12.25 |