등록/검색/상세검색/수정 모든 기능에서 같은 클래스(MemberDAOImple)의 객체를 사용하기 때문에 동일한 데이터 경로를 이용하기 위해서 이 객체를 싱글톤으로 사용하자.
>>Singleton 다시보기❗
MemberDAOImple 클래스에 만들기
private static MemberDAOImple instance=null;
private MemberDAOImple() {}
public static MemberDAOImple getInstance() {
if(instance==null) {
instance=new MemberDAOImple();
}
return instance;
}
각 메소드에서 매개변수를 통해 받아오고 전달하는 데이터를 저장할 VO타입 변수는 각각 메소드마다 만들어줘야합니다.
private static void showMainMenu() {
System.out.println();
System.out.println("---------------------------------------------");
System.out.println("0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정");
System.out.println("---------------------------------------------");
System.out.print("선택>");
}//end showMainMenu()
private static void insertMember() {
System.out.println();
System.out.println("----회원 정보 등록----");
System.out.print("아이디 입력>");
String id=sc.nextLine();
System.out.print("비밀번호 입력>");
String pw=sc.nextLine();
System.out.print("이메일 입력>");
String email=sc.nextLine();
MemberVO vo=new MemberVO(id, pw, email);
//DAOImple클래스의 insert(vo) 메소드 호출
//DAOImple의 객체가 모든 기능에서 사용되기때문에 싱글톤으로 만듦.
//회원 한명 정보 등록
int result=dao.insert(vo);
if(result==1) {
System.out.println("등록 성공!");
}else {
System.out.println("등록 실패!");
}
}//end insertMember()
private static void selectAll() {
//DAOImple의 select() 메소드 호출
//회원전체정보 배열 리턴
System.out.println();
MemberVO[] list = dao.select();
int count = ((MemberDAOImple)dao).getCount();
for(int i=0;i<count;i++) {
System.out.println("회원정보 ["+i+"]");
System.out.println(list[i]);
}
}//end selectAll()
private static void selectByIndex() {
System.out.println();
System.out.print("검색할 인덱스 인력>");
int index=sc.nextInt();
sc.nextLine();
//DAOImple의 select(index) 메소드 호출
//회원 한명 정보 리턴
int count = ((MemberDAOImple)dao).getCount();
if(index>=0 && index<count) {
MemberVO vo=dao.select(index);
System.out.println(vo);
}else {
System.out.println("존재하지 않는 회원입니다.");
}
}//end selectByIndex()
private static void updateMember() {
System.out.println();
System.out.print("수정할 인덱스 입력>");
int index=sc.nextInt();
sc.nextLine();
System.out.print("수정할 비밀번호 입력>");
String pw=sc.nextLine();
System.out.print("수정할 이메일 입력>");
String email=sc.nextLine();
MemberVO vo=new MemberVO();
vo.setPw(pw);
vo.setEmail(email);
//DAOImple의 update(index, vo) 메소드 호출
//회원 한명 정보 수정
int count=((MemberDAOImple)dao).getCount();
if(index>=0 && index<count) {
int result = dao.update(index, vo);
if(result==1) {
System.out.println("수정 성공!");
}else {
System.out.println("수정 실패!");
}
}else {
System.out.println("존재하지 않는 회원입니다.");
}
}//end updateMember()
<console 실행 화면>
회원 관리 프로그램
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>1
----회원 정보 등록----
아이디 입력>yeddoen
비밀번호 입력>*****
이메일 입력>velog.io
MemberVO [id=yeddoen, pw=*****, email=velog.io]
등록 성공!
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>1
----회원 정보 등록----
아이디 입력>velog
비밀번호 입력>hi
이메일 입력>velog@gmail.com
MemberVO [id=velog, pw=hi, email=velog@gmail.com]
등록 성공!
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>2
회원정보 [0]
MemberVO [id=yeddoen, pw=*****, email=velog.io]
회원정보 [1]
MemberVO [id=velog, pw=hi, email=velog@gmail.com]
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>3
검색할 인덱스 인력>0
MemberVO [id=yeddoen, pw=*****, email=velog.io]
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>4
수정할 인덱스 입력>0
수정할 비밀번호 입력>hello
수정할 이메일 입력>yeddoen@velog.io
수정 성공!
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>2
회원정보 [0]
MemberVO [id=yeddoen, pw=hello, email=yeddoen@velog.io]
회원정보 [1]
MemberVO [id=velog, pw=hi, email=velog@gmail.com]
--------------------------------------------------
0.종료 | 1.등록 | 2. 전체검색 | 3.인덱스검색 | 4. 수정
--------------------------------------------------
선택>0
회원관리 프로그램 1탄은 이렇게 일단 마무리해보겠습니다!
이를 기반으로 연락처 관리 프로그램을 작성해려고하는데요 이거는 새 게시글로 파야겠어용
MVC 패턴에 따른 프로그램 개발 순서
1. 주제작성
2. 데이터 정의 VO
3. 기능 정의 DAO interface
4. 기능 구현 DAOImple Class
5. UI 작업 Main Class
6. 연결 및 데이터 전송
회원관리와 연락처 관리 프로그램을 업그레이드하면서 진행해보겠습니다! 메인은 연락처!