MemberController

package kr.or.ddit.mvc.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

import kr.or.ddit.mvc.vo.MemberVO;
import kr.or.ddit.service.IMemberService;
import kr.or.ddit.service.MemberServiceImpl;

public class MemberController {
	
	private Scanner scan;
	private IMemberService service; //service객체 변수 선언
	
	//생성자
	public MemberController() {
		scan = new Scanner(System.in);
		//service = new MemberServiceImpl();
		service = MemberServiceImpl.getInstance();
		
	}

	public static void main(String[] args) {
       new MemberController().memberStart();
	}

	public void memberStart(){
		while(true){
			int choice = displayMenu();
			switch(choice){
				case 1 :	// 추가 
					insertMember(); break;
				case 2 : 	// 삭제
					deleteMember(); break;
				case 3 : 	// 수정  ==> 전체 항목 수정
					updateMember(); break;
				case 4 : 	// 전체 자료 출력
					displayMember(); break;
				case 5 : 	// 수정	==> 원하는 항목만 수정
					updateMember2(); break;
				case 0 : 	// 종료
					System.out.println("작업을 마칩니다.");
					return;
				default : 
					System.out.println("번호를 잘못 입력했습니다. 다시입력하세요.");
			}
		}
	}


	// 전체 자료 출력
	  private void displayMember() {
		
		List<MemberVO> cnt = service.getAllMember();
		System.out.println("======================전체출력======================");
		System.out.println("아이디         이름        비밀번호               전화번호               주소");
		
		if(cnt==null || cnt.size()==0){
			  System.out.println("출력할 회원정보가 없습니다.");
		}else{
		for(MemberVO memVo:cnt){
		
			System.out.print(memVo.getMem_id()+"\t");
			System.out.print(memVo.getMem_name()+"\t");
			System.out.print(memVo.getMem_pass()+"\t");
			System.out.print(memVo.getMem_tel()+"\t");
			System.out.println(memVo.getMem_addr()+"\t");
		}
		System.out.println("=================================================");
	  }
	  }
	  

	// 수정	==> 원하는 항목만 수정
    private void updateMember2() {
    	System.out.println();
		System.out.println("수정할 회원 정보를 입력하세요.");
		System.out.print("수정할 회원ID >> ");
		String memId = scan.next();
		
		int count = service.getMemberCount(memId);
		if(count==0){ // 없는 회원이면...
			System.out.println(memId + "은(는) 없는 회원ID입니다.");
			System.out.println("수정 작업을 중단합니다.");
			return;
		}
		
		int num; // 수정할 컬럼에 대한 선택 값이 저장될 변수
		String updateField = null;
		String updateTitle = null;
		do{
			System.out.println();
			System.out.println("수정할 항목을 선택하세요.");
			System.out.println(" 1.회원이름  2.비밀번호  3.전화번호  4.회원주소");
			System.out.println("----------------------------------------------");
			System.out.print("수정할 항목 선택 >> ");
			num = scan.nextInt();
			
			switch(num){
				case 1 : updateField = "mem_name";
						 updateTitle = "회원이름"; break;
				case 2 : updateField = "mem_pass";
						 updateTitle = "비밀번호"; break;
				case 3 : updateField = "mem_tel";
						 updateTitle = "전화번호"; break;
				case 4 : updateField = "mem_addr";
						 updateTitle = "회원주소"; break;
				default : 
					System.out.println("수정할 항목을 잘못 선택했습니다.");
					System.out.println("다시 선택하세요.");
			}
		}while(num<1 || num>4);
		
		scan.nextLine();  // 입력 버퍼 비우기
		System.out.println();
		System.out.print("새로운 " + updateTitle + " >> ");
		String updateData = scan.nextLine();
		
		//수정 작업에 필요한 데이터들을 Map에 저장한다
		Map<String, String> paramMap = new HashMap<String, String>();
		
		paramMap.put("field", updateField);
		paramMap.put("data", updateData);
		paramMap.put("memid", memId);
		
		int cnt = service.updateMember2(paramMap); 
		
		if(cnt>0){
			System.out.println("개별 정보 수정 작업 성공!!");
		}else{
			System.out.println("개별 정보 수정 작업 실패~~");
		}
		
		
	}
    
    
	// 수정  ==> 전체 항목 수정
	private void updateMember() {
		
		System.out.println();
		System.out.println("수정할 회원 정보를 입력하세요.");
		System.out.print("수정할 회원ID >> ");
		String memId = scan.next();
		
		int count = service.getMemberCount(memId);
		if(count==0){ // 없는 회원이면...
			System.out.println(memId + "은(는) 없는 회원ID입니다.");
			System.out.println("수정 작업을 중단합니다.");
			return;
		}
		
		System.out.println();
		System.out.println("수정할 내용을 입력하세요.");
		System.out.print("새로운 회원이름 >> ");
		String newMemName = scan.next();
		
		System.out.print("새로운 비밀번호 >> ");
		String newMemPass = scan.next();
		
		System.out.print("새로운 전화번호 >> ");
		String newMemTel = scan.next();
		
		scan.nextLine();
		System.out.print("새로운 회원주소 >> ");
		String newMemAddr = scan.nextLine();
		
		//입력한 데이터들을 VO객체에 저장한다.
				MemberVO memVo = new MemberVO();
				memVo.setMem_id(memId);
				memVo.setMem_name(newMemName);
				memVo.setMem_pass(newMemPass);
				memVo.setMem_tel(newMemTel);
				memVo.setMem_addr(newMemAddr);
				
				int cnt = service.updateMember(memVo);
				if(cnt>0){
					System.out.println("수정 스엉공");
				}else{
					
					System.out.println("수정 실패");
				}
	}

	// 추가 
	private void insertMember(){

		System.out.println();
		System.out.println("추가할 회원 정보를 입력하세요.");
		
		int count = 0;
		String memId = null;  // 회원ID가 저장될 변수
		do{
			System.out.print("회원ID >> ");
			memId = scan.next();
			
			count = service.getMemberCount(memId);
			
			if(count>0){
				System.out.println(memId + "은(는) 이미 등록된 회원ID입니다.");
				System.out.println("다른 회원ID를 입력하세요.");
			}
			
		}while(count>0);
		
		System.out.print("회원이름 >> ");
		String memName = scan.next();
		
		System.out.print("비밀번호 >> ");
		String memPass = scan.next();
		
		System.out.print("전화번호 >> ");
		String memTel = scan.next();
		
		scan.nextLine();  // 입력 버퍼 비우기
		System.out.print("회원주소 >> ");
		String memAddr = scan.nextLine();
		
		//입력한 데이터들을 VO객체에 저장한다.
		MemberVO memVo = new MemberVO();
		memVo.setMem_id(memId);
		memVo.setMem_name(memName);
		memVo.setMem_pass(memPass);
		memVo.setMem_tel(memTel);
		memVo.setMem_addr(memAddr);
		
		int cnt = service.insertMember(memVo);
		if(cnt>0){
			System.out.println("추가 스엉공");
		}else{
			System.out.println("추가 실패");
		}
		
	}
	
	// 삭제
	private void deleteMember(){
		System.out.println();
		System.out.println("삭제할 회원 정보를 입력하세요.");
		
		String memId = null;  // 회원ID가 저장될 변수
		
			System.out.print("회원ID >> ");
			memId = scan.next();
			
			int cnt = service.deleteMember(memId);
			if(cnt>0){
				System.out.println("삭제 스엉공");
			}else{
				System.out.println("삭제 실패");
			}
		
	}

	// 메뉴를 출력하고 선택한 작업 번호를 반환하는 메서드
		private int displayMenu(){
			System.out.println();
			System.out.println("== 작업 선택 ==");
			System.out.println("1. 자료 추가 ");
			System.out.println("2. 자료 삭제");
			System.out.println("3. 자료 수정");
			System.out.println("4. 전체 자료 출력");
			System.out.println("5. 자료 수정2");
			System.out.println("0. 작업 끝.");
			System.out.println("==================");
			System.out.print("원하는 작업 선택 >> ");
			int num = scan.nextInt();
			return num;
		}
	
}

좋은 웹페이지 즐겨찾기