고급JAVA 20강 - Singleton패턴 / MVC 패턴으로 게시판 만들기

Whatever·2021년 11월 24일
0

고급 JAVA

목록 보기
20/32

singleton패턴
==> 객체가 1개만 만들어지게 하는 프로그래밍 패턴
(외부에서 new명령을 사용하지 못하게 한다.)

  • 사용 이유 :
    1. 메모리 낭비 방지
    2. 데이터의 공유가 쉽다.
  • singleton클래스 만드는 방법(필수 구성 요소)
  1. 자신 class의 참조값이 저장될 변수를 private static으로 선언한다.
  2. 생성자의 접근제한자를 private으로 한다.
  3. 자신 class의 인스턴스를 생성하고 반환하는 메서드를 public static으로 작성한다.
    (이 메서드의 이름은 보통 getIntance로 한다.)

IMemberDao

인터페이스

package kr.or.ddit.mvc.dao;

import java.util.List;
import java.util.Map;

import kr.or.ddit.mvc.vo.MemberVO;

/**
 * 실제 DB서버에 연결해서 SQL문을 수행하여 결과를 작성해서 
 * Service에 전달하는 DAO의 interface
 * 
 * @author PC-05
 *
 */
public interface IMemberDao {
	
	/**
	 * MemberVO에 담겨진 자료를 DB에 insert하는 메서드
	 * 
	 * @param memvo DB에 insert할 자료가 저장된 MemberVO객체
	 * @return insert작업성공 : 1이상의 정수, insert작업실패 : 0
	 */
	public int insertMember(MemberVO memvo);
	
	/**
	 * 회원ID를 인수값으로 받아서 해당 회원 정보를 삭제하는 메서드
	 * @param memId 삭제할 회원 ID
	 * @return 삭제성공 : 1, 삭제실패 : 0
	 */
	public int deleteMember(String memId);
	
	/**
	 * MemberVO자료를 이용하여 회원 정보를 Update하는 메서드 
	 * @param memvo update할 회원 정보가 저장된 MemberVO객체
	 * @return 수정성공 : 1, 수정실패 : 0
	 */
	public int updateMember(MemberVO memvo);

	/**
	 * DB의 회원 테이블의 전체 레코드를 가져와서 
	 * List에 담아서 반환하는 메서드
	 * 
	 * @return MemberVO객체를 담고있는 List
	 */
	public List<MemberVO> getAllMember();
	
	/**
	 * 회원ID를 인수값으로 받아서 해당 회원데이터의 개수를 반환하는 메서드
	 * 
	 * @param memId 검색할 회원ID
	 * @return 검색된 회원ID 개수
	 */
	public int getMemberCount(String memId);
	
	/**
	 * MemberVO자료를 이용하여 회원 정보를 Update하는 메서드 
	 * 
	 * @param memvo update할 회원 정보가 저장된 MemberVO객체
	 * @return 수정성공 : 1, 수정실패 : 0
	 */
	public int updateMember2(MemberVO memvo, String updateField, String updateData);
	
	/**
	 * Member 1명의 정보를 불러오는 메서드
	 * 
	 * @param memId
	 * @return Member객체를 map에 담아 return
	 */
	public MemberVO getMember(String memId);
	
	/**
	 * 수정할 정보를 갖는 Map을 인수값으로 받아서 회원정보를 수정하는 메서드
	 * 
	 * @param paraMap 수정할 정보를 갖는 Map객체
	 * 			( key : field(수정할 컬럼명), data(수정할 값), memid(수정할회원ID) )
	 * @return 수정작업성공 : 1 , 수정작업실패 : 0
	 */
	// update mymember set 수정할컬럼명 = 수정할값 where mem_id=수정할 회원ID
	public int updateMember3(Map<String,String> paraMap);
	//DB에 적용할 데이터는 한 묶음으로 묶어야 함
}


MemberDaoImpl

IMemberDao를 상속받는 Class

package kr.or.ddit.mvc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import kr.or.ddit.mvc.vo.MemberVO;
import kr.or.ddit.util.DBUtil3;

public class MemberDaoImpl implements IMemberDao{
	// 1번 
	private static MemberDaoImpl dao;
	
	// 2번
	private MemberDaoImpl() {}
	
	// 3번
	public static MemberDaoImpl getInstance() {
		if(dao==null) dao = new MemberDaoImpl();
		
		return dao;
	}
	

	@Override
	public int insertMember(MemberVO memvo) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		int cnt = 0; // 반환값이 저장될 변수
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "insert into mymember(mem_id, mem_name, mem_pass,mem_tel, mem_addr)"
					+ " values(?,?,?,?,?)";
			
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memvo.getMem_id());
			pstmt.setString(2, memvo.getMem_name());
			pstmt.setString(3, memvo.getMem_pass());
			pstmt.setString(4, memvo.getMem_tel());
			pstmt.setString(5, memvo.getMem_addr());
			
			cnt = pstmt.executeUpdate();
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		}finally{
			if(pstmt!=null)try {pstmt.close();}catch(SQLException e) {}
			if(conn!=null)try {conn.close();}catch(SQLException e) {}
			
		}
		
		return cnt;
	}

	@Override
	public int deleteMember(String memId) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		int cnt = 0;
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "delete mymember where mem_id = ?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memId);
			
			cnt = pstmt.executeUpdate();
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		}finally {
			if(pstmt!=null)try {pstmt.close();}catch(SQLException e) {}
			if(conn!=null)try {conn.close();}catch(SQLException e) {}
		}
		return cnt;
	}

	@Override
	public int updateMember(MemberVO memvo) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		int cnt = 0; //반환값 변수
		try {
			conn = DBUtil3.getConnection();
			String sql = "update mymember set MEM_NAME =?, MEM_PASS =?, MEM_TEL=?, MEM_ADDR=? where MEM_ID=?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memvo.getMem_name());
			pstmt.setString(2, memvo.getMem_pass());
			pstmt.setString(3, memvo.getMem_tel());
			pstmt.setString(4, memvo.getMem_addr());
			pstmt.setString(5, memvo.getMem_id());
			
			cnt = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
			cnt = 0;
		}finally {
			if(pstmt!=null)try {pstmt.close();}catch(SQLException e) {}
			if(conn!=null)try {conn.close();}catch(SQLException e) {}
		}
		return cnt;
	}

	@Override
	public List<MemberVO> getAllMember() {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		List<MemberVO> memList = new ArrayList<>(); //반환값이 저장될 변수 선언
		
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "select * from mymember";
			
			stmt = conn.createStatement();
			
			rs = stmt.executeQuery(sql);
			
			while(rs.next()) {
				// 반복처리 부분에서는 한 레코드의 데이터를 VO에 담고 
				// 데이터가 저장된 VO를 List에 추가하는 작업을 진행한다.
				
				// 1개의 레코드 값들을 VO에 저장하기
				MemberVO memVo = new MemberVO(); // VO 객체 생성
				memVo.setMem_id(rs.getString("mem_id")); // VO에 데이터베이스에서 불러온 데이터를 저장
				memVo.setMem_name(rs.getString("mem_name"));
				memVo.setMem_pass(rs.getString("mem_pass"));
				memVo.setMem_tel(rs.getString("mem_tel"));
				memVo.setMem_addr(rs.getString("mem_addr"));
				
				memList.add(memVo); // VO 객체를 List에 추가한다.
			}
		} catch (SQLException e) {
			memList = null;
			e.printStackTrace();
		}finally {
			if(rs!=null)try {rs.close();}catch(SQLException e) {}
			if(stmt!=null)try {stmt.close();}catch(SQLException e) {}
			if(conn!=null)try {conn.close();}catch(SQLException e) {}
		}
		return memList;
	}

	@Override
	public int getMemberCount(String memId) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		int count = 0; // 반환값 저장 변수
		
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "select count(*) cnt from mymember "
					+ " where mem_id = ?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memId);
			
			rs = pstmt.executeQuery();
			
			if(rs.next()) {
				count = rs.getInt("cnt");
			}
			
		} catch (SQLException e) {
			count = 0;
			e.printStackTrace();
		}finally {
			if(rs!=null)try {rs.close();}catch(SQLException e) {}
			if(pstmt!=null)try {pstmt.close();}catch(SQLException e) {}
			if(conn!=null)try {conn.close();}catch(SQLException e) {}
		}
		return count;
	}

	@Override
	public int updateMember2(MemberVO memvo, String updateField, String updateData) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		int cnt;
		
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "update mymember "
					+ " set " + updateField + "= ? "
							+ " where mem_id =?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, updateData);
			pstmt.setString(2, memvo.getMem_id());
			cnt = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		}finally {
			if(pstmt!=null) try{pstmt.close();}catch(SQLException e) {}
			if(conn!=null) try{conn.close();}catch(SQLException e) {}
		}
		return cnt;
	}

	@Override
	public MemberVO getMember(String memId) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		MemberVO member = new MemberVO();  
		try {
			conn = DBUtil3.getConnection();
			String sql = "select * from mymember where mem_id = ?";
			
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memId);
			rs = pstmt.executeQuery();
			
			if(rs.next()) {
				member.setMem_name(rs.getString("mem_name")); 
				member.setMem_pass(rs.getString("mem_pass")); 
				member.setMem_tel(rs.getString("mem_tel")); 
				member.setMem_addr(rs.getString("mem_addr"));
				member.setMem_id(memId);	

			}
		} catch (SQLException e) {
			// TODO: handle exception
		}finally {
			if(rs!=null) try{rs.close();}catch(SQLException e) {}
			if(pstmt!=null) try{pstmt.close();}catch(SQLException e) {}
			if(conn!=null) try{conn.close();}catch(SQLException e) {}
		}
		
		return member;
	}

	@Override
	public int updateMember3(Map<String, String> paraMap) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		int cnt = 0; //반환값 저장 변수
		
		try {
			conn = DBUtil3.getConnection();
			
			String sql = "update mymember "
					+ " set " + paraMap.get("field") + "= ? "
							+ " where mem_id =?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, paraMap.get("data"));
			pstmt.setString(2, paraMap.get("memid"));
			
			cnt = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		}finally {
			if(pstmt!=null) try{pstmt.close();}catch(SQLException e) {}
			if(conn!=null) try{conn.close();}catch(SQLException e) {}
		}
		
		return cnt;
	}

}

IMemberService

인터페이스

package kr.or.ddit.mvc.service;

import java.util.List;
import java.util.Map;

import kr.or.ddit.mvc.vo.MemberVO;

/**
 * Service객체는 DAO에 만들어진 메서드를 원하는 작업에 맞게 호출하여 
 * 그 결과를 받아서 Controller에게 보내주는 역할을 한다.
 * 
 * @author PC-05
 *
 */
public interface IMemberService {
	
	/**
	 * MemberVO에 담겨진 자료를 DB에 insert하는 메서드
	 * 
	 * @param memvo DB에 insert할 자료가 저장된 MemberVO객체
	 * @return insert작업성공 : 1이상의 정수, insert작업실패 : 0
	 */
	public int insertMember(MemberVO memvo);
	
	/**
	 * 회원ID를 인수값으로 받아서 해당 회원 정보를 삭제하는 메서드
	 * @param memId 삭제할 회원 ID
	 * @return 삭제성공 : 1, 삭제실패 : 0
	 */
	public int deleteMember(String memId);
	
	/**
	 * MemberVO자료를 이용하여 회원 정보를 Update하는 메서드 
	 * @param memvo update할 회원 정보가 저장된 MemberVO객체
	 * @return 수정성공 : 1, 수정실패 : 0
	 */
	public int updateMember(MemberVO memvo);

	/**
	 * DB의 회원 테이블의 전체 레코드를 가져와서 
	 * List에 담아서 반환하는 메서드
	 * 
	 * @return MemberVO객체를 담고있는 List
	 */
	public List<MemberVO> getAllMember();
	
	/**
	 * 회원ID를 인수값으로 받아서 해당 회원데이터의 개수를 반환하는 메서드
	 * 
	 * @param memId 검색할 회원ID
	 * @return 검색된 회원ID 개수
	 */
	public int getMemberCount(String memId);
	
	/**
	 * MemberVO자료를 이용하여 회원 정보를 Update하는 메서드 
	 * 
	 * @param memvo update할 회원 정보가 저장된 MemberVO객체
	 * @return 수정성공 : 1, 수정실패 : 0
	 */
	public int updateMember2(MemberVO memvo,String updateField, String updateData);
	
	/**
	 * Member 1명의 정보를 불러오는 메서드
	 * 
	 * @param memId
	 * @return Member객체를 map에 담아 return
	 */
	public MemberVO getMember(String memId);
	
	/**
	 * 수정할 정보를 갖는 Map을 인수값으로 받아서 회원정보를 수정하는 메서드
	 * 
	 * @param paraMap 수정할 정보를 갖는 Map객체
	 * 			( key : field(수정할 컬럼명), data(수정할 값), memid(수정할회원ID) )
	 * @return 수정작업성공 : 1 , 수정작업실패 : 0
	 */
	// update mymember set 수정할컬럼명 = 수정할값 where mem_id=수정할 회원ID
	public int updateMember3(Map<String,String> paraMap);
	//DB에 적용할 데이터는 한 묶음으로 묶어야 함
	
}

MemberServiceImpl

IMemberService를 상속받는 Class

package kr.or.ddit.mvc.service;

import java.util.List;
import java.util.Map;

import kr.or.ddit.mvc.dao.IMemberDao;
import kr.or.ddit.mvc.dao.MemberDaoImpl;
import kr.or.ddit.mvc.vo.MemberVO;

public class MemberServiceImpl implements IMemberService {
	private IMemberDao dao; // DAO 객체의 참조값이 저장될 변수 선언
	
	private static MemberServiceImpl service; // 1번
	
	// 2번
	private MemberServiceImpl() {
		dao = MemberDaoImpl.getInstance();
	}
	
	// 3번
	public static MemberServiceImpl getInstance() {
		if(service == null) service = new MemberServiceImpl();
		return service;
	}
		
	/*
	 * public MemberServiceImpl() { //dao = new MemberDaoImpl(); // DAO객체 생성 dao =
	 * MemberDaoImpl.getInstance(); // DAO객체 생성 }
	 */
	
	@Override
	public int insertMember(MemberVO memvo) {
		// TODO Auto-generated method stub
		return dao.insertMember(memvo);
	}

	@Override
	public int deleteMember(String memId) {
		// TODO Auto-generated method stub
		return dao.deleteMember(memId);
	}

	@Override
	public int updateMember(MemberVO memvo) {
		// TODO Auto-generated method stub
		return dao.updateMember(memvo);
	}

	@Override
	public List<MemberVO> getAllMember() {
		// TODO Auto-generated method stub
		return dao.getAllMember();
	}

	@Override
	public int getMemberCount(String memId) {
		// TODO Auto-generated method stub
		return dao.getMemberCount(memId);
	}

	@Override
	public int updateMember2(MemberVO memvo,String updateField, String updateData) {
		// TODO Auto-generated method stub
		return dao.updateMember2(memvo, updateField, updateData);
	}

	@Override
	public MemberVO getMember(String memId) {
		// TODO Auto-generated method stub
		return dao.getMember(memId);
	}

	@Override
	public int updateMember3(Map<String, String> paraMap) {
		// TODO Auto-generated method stub
		return dao.updateMember3(paraMap);
	}

}

MemberConltroller

controller

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.service.IMemberService;
import kr.or.ddit.mvc.service.MemberServiceImpl;
import kr.or.ddit.mvc.vo.MemberVO;

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

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

	}
	
	// 메뉴를 출력하고  
	private int displayMenu() {

		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 input = scan.nextInt();
		return input;
	}
	
	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 updateMember3() {
		System.out.println();
		System.out.println("수정할 회원 정보를 입력하세요.");
		System.out.print("수정할 회원ID >> ");
		String memId = scan.next();
		
		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);
		//update mymember set 수정할 컬럼명 = 수정할 값 where mem_id=수정할 회원ID
		
		scan.nextLine();
		System.out.println();
		System.out.print("새로운 " + updateTitle + ">>");
		String updateData = scan.nextLine();
		
		Map<String, String> paraMap = new HashMap<>();
		
		paraMap.put("field", updateField);
		paraMap.put("data", updateData);
		paraMap.put("memid", memId);
		
		int cnt = service.updateMember3(paraMap);
		
		if(cnt>0) {
			System.out.println("수정 작업 성공");
		}else {
			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;
		}
		MemberVO mem = service.getMember(memId);
		
		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);
		//update mymember set 수정할 컬럼명 = 수정할 값 where mem_id=수정할 회원ID
		
		scan.nextLine();
		System.out.println();
		System.out.print("새로운 " + updateTitle + ">>");
		String updateData = scan.nextLine();
		
		int cnt = service.updateMember2(mem, updateField, updateData);
		
		if(cnt>0){
			System.out.println(memId + "회원 정보 수정 완료!!!");
		}else{
			System.out.println(memId + "회원 정보 수정 실패~~~");
		}
		
	}

	private void displayMember() {
		System.out.println();
		System.out.println("===============================================");
		System.out.println(" 회원ID   회원이름  비밀번호   전화번호    주 소");
		System.out.println("===============================================");
		
		List<MemberVO> list = service.getAllMember();
		if(list==null||list.size()==0) {
			System.out.println("출력할 회원정보가 없습니다.");
		}
		
		for(MemberVO memVo : list) {
			System.out.println(memVo.getMem_id() + "\t"
					+ memVo.getMem_name() + "\t"
					+ memVo.getMem_pass() + "\t"
					+ memVo.getMem_tel() + "\t"
					+ memVo.getMem_addr() + "\t");
			System.out.println("-----------------------------------------------");
		}
		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 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();
		
		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.updateMember(memVo);
		
		if(cnt>0){
			System.out.println(memId + "회원 정보 수정 완료!!!");
		}else{
			System.out.println(memId + "회원 정보 수정 실패~~~");
		}
	}

	private void deleteMember() {
		
		System.out.println();
		System.out.println("삭제할 회원 정보를 입력하세요.");
		System.out.print("삭제할 회원ID >> ");
		String memId = scan.next();
		
		int cnt = service.deleteMember(memId);
		
		if(cnt > 0) {
			System.out.println("회원ID가 " + memId + "인 회원 삭제 성공!!");	
		}else {
			System.out.println(memId + "은(는) 없는 회원ID이거나 "
					+ "삭제에 실패했습니다.");
		}
		
	}

	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("회원 정보 추가 실패~~~");
			}
	}
	

}

0개의 댓글