memberlist는 date 자료형이 사용되어서 booklist보다 조금 복잡해지는 코드가 있다.
이번에는 select, insert, update, delete를 따로 만들지 않고 한 곳에서 만들어 사용자가 기능을 선택할 수 있게 한다.
select(), insert(), update(), delete() 메서드들을 순서대로 만든다. select가 먼저 완성 되어야 다른 메서드를 만들 때 조회하면서 잘 작동되었는지 확인할 수 있기 때문이다.
메서드를 만들기 전에 memberlist의 필드값들을 담을 객체를 생성할 클래스, 데이터베이스와 연결하고 CRUD 작업을 정리할 클래스를 생성한다.
메서드들은 Membermain과 Memberdao를 왔다갔다 하면서 하나씩 생성한다.
Dto : Data Transfer Object(데이터 전송 객체) 다른 말로 JAVA Bean
이 파일은 뒤에 만들 Dao와 main에서 사용될 객체의 정보를 담은 클래스
memberlist의 필드 값들을 담아서 전달할 객체로서 변수들을 private으로 설정하여 직접적인 선언을 막고 getter와 setter로 값을 가져오고 설정하는 객체를 만든다.
Dao : Database Access Object
데이터베이스 관련 작업과 데이터 이동을 전담하는 클래스이며,
연결에 필요한 정보는 멤버변수에 저장해서 사용한다.
연결과 각 CRUD(Insert, Select, Update, Delete 네동작을 지칭하는 약자)작업을 멤버 메서드를 만들어서 작동하게 한다.
연결과 관련된 변수들을 멤버 메서드로 만든다
➡️ 한 번 생성해서 계속 가져가 쓰기 위해서
연결 객체를 생성하는 메서드를 만들어서 이 메서드 호출만으로 DB연결이 되도록 한다.
➡️ Connection 객체를 리턴하는 getConnection메서드
사용한 객체들은 close()해야한다. 사용한 객체들을 한 번에 close() 하도록 메서드 생성 ➡️ colse() 메서드
main에서 전달받은 객체를 이용해서 레코드를 추가하고 결과를 1 or 0으로 리턴하는 함수
DB연결하고 ➡️ sql작성(객체에서 필드값 얻어서 넣고) ➡️ sql문 전달 ➡️ sql문 실행 ➡️ 실행결과 리턴하기
수정할 회원번호를 입력받아서 해당회원이 존재하는지 검사하고,
MemberDao.selectOne()메서드에 회원번호를 전달인수로 전달하여 회원이 존재하는지 검사한다.
여기서 Dao로 넘어가서 selectOne()메서드를 먼저 만들어야 다음 단계로 넘어갈 수 있다.
있으면 mdto에 저장 (없으면 안내하고 종료),
수정할 내용을 차례로 입력받되 수정하지 않을 사항을 엔터만 입력해서 PASS,
날짜 입력과 변환이 복잡하므로 틀리거나 바뀌지 않도록 신경쓰기!!!
수정할 내용이 있는 건 mdto에 수정해서 저장하고 MemberDao.update()의 전달 인수로 전달한다.
MemberDao와 왔다갔다 하면서 코드가 작성되어야 하지만 하나의 함수라서 한 블럭으로 정리함
사용자에게 입력받은 membernum을 seletOne()에 전달해서 회원이 있는지 먼저 조회하기
있으면 mdao.delete()에 membernum을 전달해서 해당 레코드 삭제