6월 28일 월요일 - 리팩토링2 - insert ㅇ

@_@·2021년 6월 27일
0

JDBC

목록 보기
2/4

<목차>
ㅇ insert 기능 코드 만들기
ㅇ 리팩토링 1 : 사용자에게 데이터 입력받는 부분 => Main으로
ㅇ 리팩토링 2 : 회원가입 성공/실패 출력문 => Main으로
ㅇ 리팩토링 3 : cnt 값을 DAO에서 Main으로 보내주기
ㅇ ★포인트★ 클래스 간 데이터 이동 방법 : 메서드의 입력인자, 반환값




ㅇ insert 기능

우선 MemberDAO에서 insert부분을 다 만들어 보자.
사용자가 입력한 내용에 대해 값이 sql문으로 넘어갈 수 있는 코드

  • 전에는 직접적으로 데이터 이름을 넣었었지만
  • 이제 사용자에게 입력받을 거니까 "?" 사용
  • 사용자에게 입력 받는 부분
  • 입력 받은 값을 sql문에 넣어주기 = 값을 넘겨줘서 저장 -> 셋메소드 사용



ㅇ 리팩토링 1 : 사용자에게 데이터 입력받는 부분 => Main으로

  • 사용자에게 정보를 입력받는 부분은 view로 이동

ㅇ ① ② ③ 이 클래스를 오가기 때문에 에러가 나

  • ① sql 실행할건데 ② 메인에 있는 값을 받아다가 ③ 받은 값을 넘겨주기 때문에
  • 값을 넘겨주기 위해 => insert 메소드에 입력인자 사용하기!!!


    (cf. 인서트메소드 사용에 빨간줄이 나는 건 name, age, ph, add 입력 받는 부분이 위로 올라와야 해 => 순서 바꿔주기)



ㅇ 리팩토링 2 : 회원가입 성공/실패 출력문 => Main

  • 메인으로 고고



ㅇ 지금까지의 흐름

  • DB와 관련된 것들, 사용자가 보면 안 되는 부분 => DAO
  • 사용자가 봐야만 하는 부분, 사용자가 보는 부분은 => Main
  1. (DAO) 디비와 연결
  2. (DAO) sql문장 사용
  3. (Main) 유저가 입력
  4. (DAO) 입력한 값을 실제 DB 로 넘겨줌
  5. 값이 잘 입력됐는지 cnt로 확인해서 사용자에게 성공/실패 보여줘
  • 여기서 (DAO)의 cnt를 (Main)으로 보내줄 수 있으면 완성
    어떤 방법을 쓰면 좋을까?



ㅇ 리팩토링 3 : cnt 값을 DAO에서 Main으로 보내주기

  • 메서드의 리턴 값에 cnt를 넣어주면 돼
  • 리턴 타입 보이드 대신 int로
  • 처음에는 에러 날 거야. 왜냐면 cnt가 지역변수였어서 try문 안에서만 사용가능
    그래서 선언과 초기화를 트라이문 위로 올려줘야 해
  • 사용할 때 자료형 선언부도 지우고


  • 이러면 insert는 연결 성공하면 리턴 값이 cnt가 되고 이걸 (Main)의 cnt가 받게 돼



ㅇ 최종 결과물

  • (DAO) insert 메서드
  • (Main)





profile
STEP BY STEP

0개의 댓글