본문 바로가기

IT일반과목/JDBC

20180831 JDBC 코딩(다른방식의 코딩-2)


package org.kh.member.controller;

import java.util.ArrayList;

import org.kh.member.dao.MemberDao;
import org.kh.member.model.vo.Member;

public class MemberController {

	// 컨트롤러 클래스의 역할
	// view에서 요청한 기능을 컨트롤러가 DAO와의 연결을 하는 역할

	// 회원 전체출력 메소드
	public void selectMemberAll() {
		MemberDao dao = new MemberDao();
		ArrayList<Member> list = dao.selectMemberAll(); // DAO의 회원 전체 조회 메소드 호출
		// 리턴한 list 결과 상황
		// 1. list 가 있을 때
		// 2. lost 가 없을 때

		if (!list.isEmpty())// .isEmpty =비어있따 // list가 있을 떄
		{

			// 결과출력
			System.out.println("\n----------------- 전체 회원 정보 조회 -----------------\n");
			System.out.println("아이디     비밀번호  이름   성별   나이   이메일   전화번호   주소   취미   가입일");


			//1번째 방식
			for(Member m : list) {
				System.out.println(m);//m만써도된다.
			}


			//2번째 방식
			/*
			for (Member m : list) {
				System.out.println(
						m.getMemberId() + "  " +
						m.getMemberPwd() + "  " +
						m.getMemberName() + "  "+ 
						m.getGender() + "  " +
						m.getAge() + "  " +
						m.getEmail() + "  " +
						m.getPhone()+ "  " +
						m.getAddress() + "  " +
						m.getHobby() + "  " +
						m.getEnrollDate());
			}
			 */


			//3번째 방식
			/*
			 * for (int i = 0; i < list.size(); i++) {
			 * System.out.println(list.get(i).getMemberId() + "  " +
			 * list.get(i).getMemberPwd() + "  " + list.get(i).getMemberName() + "  " +
			 * list.get(i).getGender() + "  " + list.get(i).getAge() + "  " +
			 * list.get(i).getEmail() + "  " + list.get(i).getMemberId() + "  " +
			 * list.get(i).getAddress() + "  " + list.get(i).getHobby() + "  " +
			 * list.get(i).getEnrollDate()); }
			 */

		} else// list가 없을 때
		{
			// 없다고 알려주는 코드
			System.out.println("회원 목록이 없습니다.");
		}

	}

	// 회원 아이디 검색 메소드
	public void selectMemberId(String userId) {//매개변수 낙타표기법으로 썼다.
		//System.out.println("입력받은 문자열 : "+userId);
		MemberDao dao=new MemberDao();
		dao.selectMemberId(userId);//dao를 그대로 dao한테줘서 그걸 DB한테그아이디로 검색하게끔 할것이다.
		Member m = dao.selectMemberId(userId);
		
		if(m!=null) //객체가 있을때(조회가 성공하였을때)
		{
			// 결과출력
			
			System.out.println("\n----------------- 전체 회원 정보 조회 -----------------\n");
			System.out.println("아이디     비밀번호  이름   성별   나이   이메일   전화번호   주소   취미   가입일");
			System.out.println(m);//하나일때는 굳이 m하나만 해주면 된다.
		}
		else //객체가 없을때(조회가 없어서 null이 리턴되었을때)
		{
			System.out.println("해당되는 ID를 가진 회원이 없습니다.");
		}
		
		
		

	}

	// 회원 이름 검색 메소드
	public void selectMemberName(String userName) {
		MemberDao dao = new MemberDao();
		dao.selectMemberName(userName);
		ArrayList<Member> list = dao.selectMemberName(userName); 
		
		if(!list.isEmpty()) {
			System.out.println("\n----------------- 전체 회원 정보 조회 -----------------\n");
			System.out.println("아이디     비밀번호  이름   성별   나이   이메일   전화번호   주소   취미   가입일");

			for(Member m:list) {
				System.out.println(m);
			}
		}else {
			System.out.println("누가없는거 찾으래!");
		}
	}

	// 회원 가입 메소드
	public void insertMember(Member m) {
		// TODO Auto-generated method stub
		MemberDao dao = new MemberDao();
		int result=dao.insertMember(m);
		
		if(result>0) {
			System.out.println("정상적으로 회원가입 되었습니다.");
		}
		else {
			System.out.println("회원 가입에 실패 하였습니다.");
		}
	}

	// 회원 정보 수정 메소드
	public void updateMember(String userId,Member m2) {
		MemberDao dao = new MemberDao();
		int result=dao.updatemember(userId,m2);
		if(result>0) {
			System.out.println("정보 수정이 정상 처리 되었습니다.");
		}else {
			System.out.println("회원 정보 수정이 실패 하였습니다.(관리자에게문의)");
		}
	}

	// 회원 탈퇴 메소드
		public void deleteMember(String userId) {
			MemberDao dao=new MemberDao();
			int result=dao.deleteMember(userId);
			
			if(result>0) {
				System.out.println("정상적으로 탈퇴 되었습니다.");
			}
			else {
				System.out.println("탈퇴가 실패 하였습니다.");
			}
			
		}

	public boolean searchUserId(String userId) {
		// TODO Auto-generated method stub
		//System.out.println("입력받은 문자열 : "+userId);
				MemberDao dao=new MemberDao();
				//dao.selectMemberId(userId);//dao를 그대로 dao한테줘서 그걸 DB한테그아이디로 검색하게끔 할것이다.
				Member m = dao.selectMemberId(userId);
				
				if(m!=null) //객체가 있을때(조회가 성공하였을때)
				{
					// 결과출력
					
					System.out.println("회원 조회가 완료되었습니다.");
					System.out.println("\n----------------- ["+userId+"]회원정보 -----------------\n");
					System.out.println("아이디     비밀번호  이름   성별   나이   이메일   전화번호   주소   취미   가입일");
					System.out.println(m);//하나일때는 굳이 m하나만 해주면 된다.
					return true;
				
				
				}
				else //객체가 없을때(조회가 없어서 null이 리턴되었을때)
				{
					System.out.println("해당되는 ID를 가진 회원이 없습니다.");
					return false;
				}
				
	}

	

}



package org.kh.member.dao;

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

import org.kh.member.model.vo.Member;

public class MemberDao {
	
	//DBMS에 접근하는 전체 회원 조회 메소드
	public ArrayList<Member> selectMemberAll() {
		
		//필요한 레퍼런스 생성(Connection, Statement, ResultSet)
			
		//java.sql 패키지 import
		Connection conn = null; //Connection 레퍼런스 (객체 생성은 아직 안함)
		Statement stmt = null; //Statement 래퍼런스 (객체 생성은 아직 안함)
		ResultSet rset=null; //ResultSet 래퍼런스 (객체 생성은 아직 안함)

		ArrayList<Member> list=new ArrayList<Member>();
		
		//@ JDBC Coding 절차
		try {
			//1. Driver 등록
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2. DBMS와 연결 (Connection 사용)
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
					,"member", "member");
			//첫번째는 연결 정보(DB종류, 타입, IP주소, 포트 등등)
			//두번째는 연결하는 DB의 ID(아이디)
			//세번째는 연결하는 ID의 PW(비밀번호)
			//get으로 읽어오는것이므로 저장하는 것이다.conn에 저장하는 것이다.
			
			System.out.println(conn);
			// conn 레퍼런스 안에 있는 값을 출력시
			// DBMS에 정상연결 되었다면 hashCode 값(Connection 값)이 출력 되고
			// DBMS에 연결 실패 하였다면 null값을 리턴
			
			//3. Statement 생성 - 작성한 쿼리문을 전송할 객체를 생성 해야 함
			// Connection (conn) 객체를 이용하여 Statement 객체를 생성함
			stmt=conn.createStatement(); // Statement 객체 생성
				
			//4. SQL 전송
			// - Query 문이 있어야 전송합니다.
			String query = "select * from member";
			rset=stmt.executeQuery(query); // Statement 객체를 이용하여 쿼리문 실행
			//결과를 rset에 담는다.
			

			//5. 결과 처리
			// rset을 이용하여 결과를 처리함
			// rset.next() 메소드와 rset.set...() 메소드를 이용함
			// next 메소드는 각 행을 가리키는 메소드(작업시 마다 사용해야함)
			// set...() 메소드는 각 컬럼의 정보를 가져올때 사용함
			
			//rset.next()
			//rset.getString("member_id"); -> rset을 이용해스트링값갖고오는데 그컬럼명은 멤버아이디꺼갖고오라는 것이다.
			
			
			while(rset.next()) {
				Member m = new Member();
				
				//ID값 저장하기
				m.setMemberId(rset.getString("member_id"));
				m.setMemberPwd(rset.getString("member_pwd"));
				m.setMemberName(rset.getString("member_name"));
				m.setGender(rset.getString("gender").charAt(0));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setAddress(rset.getString("address"));
				m.setPhone(rset.getString("phone"));
				m.setHobby(rset.getString("hobby"));
				m.setEnrollDate(rset.getDate("enroll_date"));

				list.add(m);
			}
			
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//오라클에 jdbc에 드라이버에 오라클드라이버를 등록하겠다.
		//이코드가 없어도 8버전부턴 가능하긴한데 넣어주는게 좋다.
		catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//6. 연결된 리소스 닫기 (close 작업 - finally에서 작업)
			try {
				rset.close();
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}

		return list;
		
	}
	
	public Member selectMemberId(String userId) {
		
		Connection conn=null;//DBMS와 연결
		PreparedStatement pstmt=null;//작성한 쿼리문을 전송할 객체를 생성 해야 함
		ResultSet rset=null;//SELECT 구문일 경우 ResultSet을 이용하여 정보를 객체에 담는 처리
		
		Member m = null; //멤버객체를 여기선 바깥에 만드는데 그 이유는?
		//결과가 조회되던안되던 리턴받을 것이다.
		
		try {
			
			//1. Driver 등록
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2. DBMS 연결
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "member", "member");
			//SQLException 에러 뜰수있기 때문에 catch로잡아줘야한다.
			
			//3. Statement 객체 생성
			// Connection (conn) 객체를 이용하여 Statement 객체를 생성함
			//stmt=conn.createStatement();
			
			//4. SQL 전송
			// - Query 문이 있어야 전송합니다.
			
			//쿼리문을 만든다음 값을 넣는 것이다.
			String query="select * from member where member_id=?";
			pstmt=conn.prepareStatement(query);
			pstmt.setString(1, userId);
			
			
			//쿼리를 아까 담았기 때문에 굳이 여기에 담을 필요가 없다.
			rset=pstmt.executeQuery();// Statement 객체를 이용하여 쿼리문 실행
			
			//5. 결과 처리
			// rset을 이용하여 결과를 처리함
			// rset.next() 메소드와 rset.set...() 메소드를 이용함
			// next 메소드는 각 행을 가리키는 메소드(작업시 마다 사용해야함)
			// set...() 메소드는 각 컬럼의 정보를 가져올때 사용함
			
			if(rset.next()) {//만약에 1명의 결과가 조회되었다면 진행하고 없다면 하지마라!
				
				m=new Member();//결과가 있으므로 정보를 저장할 VO 객체 생성
				m.setMemberId(rset.getString("member_id"));
				m.setMemberPwd(rset.getString("member_pwd"));
				m.setMemberName(rset.getString("member_name"));
				m.setGender(rset.getString("gender").charAt(0));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setPhone(rset.getString("phone"));
				m.setAddress(rset.getString("address"));
				m.setHobby(rset.getString("hobby"));
				m.setEnrollDate(rset.getDate("enroll_date"));
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//6. 연결된 리소스 닫기 (close 작업 - finally에서 작업)
			try {
				rset.close();
				pstmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		return m; //m래퍼런스 안에 있는 값을 리턴(Member 객체 혹은 null)
		
		
		
		
		
	}

	public ArrayList<Member> selectMemberName(String userName) {
		// TODO Auto-generated method stub
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rset=null;
		
		//Member m=null;
		ArrayList<Member> list = new ArrayList<Member>();
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
					,"member", "member");
			System.out.println(conn);
			
			
			String query="select * from member where member_name like '%'||?||'%'";
			//member_name like (?)";
			//pstmt.setString(1,"%"+userName+"%")
			pstmt=conn.prepareStatement(query);
			System.out.println(query);
			
			pstmt.setString(1, userName);
			rset=pstmt.executeQuery();
		
			while(rset.next()) {
				Member m = new Member();
				
				//ID값 저장하기
				m.setMemberId(rset.getString("member_id"));
				m.setMemberPwd(rset.getString("member_pwd"));
				m.setMemberName(rset.getString("member_name"));
				m.setGender(rset.getString("gender").charAt(0));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setAddress(rset.getString("address"));
				m.setHobby(rset.getString("hobby"));
				m.setEnrollDate(rset.getDate("enroll_date"));
				
				list.add(m);
			}
			
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			rset.close();
			pstmt.close();
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
		
		
		
	}
	//회원 가입용 메소드
	public int insertMember(Member m) {
		
		//래퍼런스 3종세트
		Connection conn=null;
		PreparedStatement pstmt=null;
		//ResultSet rset=null; -> 이제 안만들어도된다. select가아니므로 결과값이 돌아올 필요가 없기 때문이다.
		int result=0; //결과를 숫자로 받을려고 한다.
		
		try {
			
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "member", "member");
			
			//pstmt = conn.createStatement();
			
//			String query="insert into member values("+
//			"'"+m.getMemberId()+"',"+
//			"'"+m.getMemberPwd()+"',"+
//			"'"+m.getMemberName()+"',"+
//			"'"+m.getGender()+"',"+
//			"'"+m.getAge()+"',"+
//			"'"+m.getEmail()+"',"+
//			"'"+m.getPhone()+"',"+
//			"'"+m.getAddress()+"',"+
//			"'"+m.getHobby()+"',"+"sysdate)";
//			
			String query="insert into member values ((?), (?), (?), (?), (?), (?),(?),(?),(?),sysdate)";
			
			
			
			pstmt = conn.prepareStatement(query);
			System.out.println(query);
			pstmt.setString(1, m.getMemberId());
			pstmt.setString(2, m.getMemberPwd());
			pstmt.setString(3, m.getMemberName());
			pstmt.setString(4,""+m.getGender());
			pstmt.setInt(5, m.getAge());
			pstmt.setString(6, m.getEmail());
			pstmt.setString(7, m.getPhone());
			pstmt.setString(8, m.getAddress());
			pstmt.setString(9, m.getHobby());
			//stmt.executeQuery(sql) -> select 전용이다.
			
			//0이넘어오면 정상적으로되었다 하면되고 아니면 정상가입 안되었다고 하면된다.
			result=pstmt.executeUpdate(); //return 타입이 int형이다.
			
			//commit과 rollback가 없을경우 트랜잭션을 계속 잡고 있게 된다.
			if(result>0) {//정상처리되었을때
				conn.commit(); //적용
			}
			else {
				conn.rollback(); //되돌리기
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
		return result;
	}

	public int updatemember(String userId, Member m2) {
		// TODO Auto-generated method stub
		Connection conn=null;
		PreparedStatement pstmt=null;
		int result=0;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "member", "member");
			
			
//			String query="update member set "
//			+"member_pwd ='"+m2.getMemberPwd()+"',"
//			+"email='"+m2.getEmail()+"',"
//			+"phone='"+m2.getPhone()+"',"
//			+"address='"+m2.getAddress()+"',"
//			+"hobby='"+m2.getHobby()+"'"		
//			+"where member_id='"+userId+"'";
			
			String query="update member set member_pwd=?, email=?,phone=?,address=?,hobby=? where member_id=?";
			pstmt = conn.prepareStatement(query);
			
			pstmt.setString(1, m2.getMemberPwd());
			pstmt.setString(2, m2.getEmail());
			pstmt.setString(3, m2.getPhone());
			pstmt.setString(4, m2.getAddress());
			pstmt.setString(5, m2.getHobby());
			pstmt.setString(6, userId);
			
			
			
			
			
			
			System.out.println(query);
			result=pstmt.executeUpdate();
			
			if(result>0) {
				conn.commit();
			}
			else {
				conn.rollback();
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		}
		return result;
	
		
		
	}
	public int deleteMember(String userId) {
		// TODO Auto-generated method stub
		//래퍼런스 3종세트
		Connection conn=null;
		PreparedStatement pstmt=null;
		//ResultSet rset=null; -> 이제 안만들어도된다. select가아니므로 결과값이 돌아올 필요가 없기 때문이다.
		int result=0; //결과를 숫자로 받을려고 한다.

		try {

			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "member", "member");

			

			//String query="delete from member where member_id='"+userId+"'";
			String query="delete from member where member_id=?";
			pstmt = conn.prepareStatement(query);
			
			pstmt.setString(1, userId);
			System.out.println(query);
			//stmt.executeQuery(sql) -> select 전용이다.

			//0이넘어오면 정상적으로되었다 하면되고 아니면 정상가입 안되었다고 하면된다.
			result=pstmt.executeUpdate(); //return 타입이 int형이다.

			//commit과 rollback가 없을경우 트랜잭션을 계속 잡고 있게 된다.
			if(result>0) {//정상처리되었을때
				conn.commit(); //적용
			}
			else {
				conn.rollback(); //되돌리기
			}

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

		return result;
	}

	
	
} 


package org.kh.member.model.vo;

import java.sql.Date;

public class Member {
	//ID, PW
	private String memberId;
	private String memberPwd;
	private String memberName;
	private char gender;
	private int age;
	private String email;
	private String phone;
	private String address;
	private String hobby;
	private Date enrollDate; // java.sql.Date import
	
	public Member(String memberId, String memberPwd, String memberName, char gender, int age, String email,
			String phone, String address, String hobby, Date enrollDate) {
		super();
		this.memberId = memberId;
		this.memberPwd = memberPwd;
		this.memberName = memberName;
		this.gender = gender;
		this.age = age;
		this.email = email;
		this.phone = phone;
		this.address = address;
		this.hobby = hobby;
		this.enrollDate = enrollDate;
	}
	
	
	public Member() {
		super();
		// TODO Auto-generated constructor stub
	}

	
	//이렇게 해줄경우 컨트롤러에서 toString을 호출하게끔 할수 있다.
	@Override
	public String toString() {
		
		return 
				this.getMemberId() + "  " +
				this.getMemberPwd() + "  " +
				this.getMemberName() + "  "+ 
				this.getGender() + "  " +
				this.getAge() + "  " +
				this.getEmail() + "  " +
				this.getPhone()+ "  " +
				this.getAddress() + "  " +
				this.getHobby() + "  " +
				this.getEnrollDate();
	}
	
	

	//alt+shift+s
	public String getMemberId() {
		return memberId;
	}
	
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}
	public String getMemberPwd() {
		return memberPwd;
	}
	public void setMemberPwd(String memberPwd) {
		this.memberPwd = memberPwd;
	}
	public String getMemberName() {
		return memberName;
	}
	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	public char getGender() {
		return gender;
	}
	public void setGender(char gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getHobby() {
		return hobby;
	}
	public void setHobby(String hobby) {
		this.hobby = hobby;
	}
	public Date getEnrollDate() {
		return enrollDate;
	}
	public void setEnrollDate(Date enrollDate) {
		this.enrollDate = enrollDate;
	}
	
	
	
} 


package org.kh.member.run;

import org.kh.member.view.MemberMgr;

public class RunMain {
	public static void main(String[] args) {
		MemberMgr mgr = new MemberMgr();
		mgr.mainMenu();
		
		
		//new MemberMgr().mainMenu(); //객체 만들자 마자 실행
		//한번만 만들어서 실행하는걸로 challenge방식으로 할 수도 있다.
	}
} 


package org.kh.member.view;

import java.util.Scanner;

import org.kh.member.controller.MemberController;
import org.kh.member.model.vo.Member;

//회원 관리 메뉴를 보여주는 View Class
public class MemberMgr {
	private Scanner sc = new Scanner(System.in);
	
	private MemberController mCon = new MemberController();//컨트롤러 객체
	
	// 메인 메뉴 메소드
	public void mainMenu() {
		int choice; 
		do {
		System.out.println("\n= = = = = = = = = = 회원 관리 프로그램 = = = = = = ");
		System.out.println("1. 회원 정보 전체 조회");
		System.out.println("2. 회원 아이디 조회(1명)");
		System.out.println("3. 회원 이름으로 검색(다수)");
		System.out.println("4. 회원 가입");
		System.out.println("5. 회원 정보 변경");
		System.out.println("6. 회원 탈퇴");
		System.out.println("0. 프로그램 종료");
		System.out.print("선택 : ");
		choice = sc.nextInt(); //선택값 choice 변수에 저장

		switch(choice) {
		case 1:mCon.selectMemberAll(); break;
		case 2:
			System.out.print("검색할 ID를 입력 : ");
			mCon.selectMemberId(sc.next()); break;
		case 3:
			System.out.print("검색할 NAME을 입력 : ");
			mCon.selectMemberName(sc.next());
			break;
		case 4:
			Member m=joinMember();//입력받는 전용메소드
			mCon.insertMember(m);//Member m=joinMember();이거랑 같다.
			break;
		case 5:
			//해당 회원 정보 조회
			System.out.print("수정할 ID 입력 : ");
			String userId=sc.next();
			boolean result=mCon.searchUserId(userId);
			if(result) {//true가 리턴되었다면 회원이 있다는 의미가 되므로 수정 작업이 진행
			//비밀번호, 이메일, 폰번호, 주소, 취미
				Member m2=modifyMember();
				mCon.updateMember(userId,m2);
			}
			
			
			
			break;
		case 6:
			System.out.print("삭제할 ID를 입력 : ");//삭제할경우 기준을 ID로 잡았다.
			mCon.deleteMember(sc.next());
			break;
		}
		}while(choice!=0);//한번은 무조건 실행될 것이기 때문에 do while로 짰다.
		System.out.println("저희 프로그램을 이용해주셔서 감사합니다. 호구님!");
	}
	
	//회원 정보 수정 입력 메소드
	public Member modifyMember() {
		
		Member m= new Member();
		System.out.println("\n ---------- 수정될 회원 정보 입력 ----------\n");
		System.out.print("변경될 비밀번호 입력:");
		m.setMemberPwd(sc.next());
		System.out.print("변경될 이메일 입력:");
		m.setEmail(sc.next());
		System.out.print("변경될 폰번호 입력(-를제외):");
		m.setPhone(sc.next());
		System.out.print("변경될 주소 입력:");
		m.setAddress(sc.next());
		System.out.print("변경될 취미 입력(,로구분):");
		m.setHobby(sc.next());
		return m;
	
	}
	
	
	
	
	//회원 가입 정보 입력 메소드
		public Member joinMember() {
			System.out.println("- - - - - -회원 가입 정보 입력 ----");
			System.out.print("아이디 입력 : ");
			String userId=sc.next();
			System.out.print("비밀번호 입력 : ");
			String userPwd = sc.next();
			System.out.print("이름 입력 : ");
			String userName=sc.next();
			System.out.print("성별 입력 : ");
			char gender = sc.next().charAt(0);
			System.out.print("나이 입력 : ");
			int age = sc.nextInt();
			System.out.print("이메일 입력 : ");
			String email = sc.next();
			System.out.print("폰번호 입력(-빼고 입력) : ");
			String phone=sc.next();
			System.out.print("주소 입력 : ");
			sc.nextLine();
			String address = sc.nextLine();
			System.out.print("취미 입력(,로 구분 지어서 입력) : ");
			String hobby = sc.next();
			
			Member m = new Member();
			m.setMemberId(userId);
			m.setMemberPwd(userPwd);
			m.setMemberName(userName);
			m.setGender(gender);
			m.setAge(age);
			m.setEmail(email);
			m.setPhone(phone);
			m.setAddress(address);
			m.setHobby(hobby);
			return m;
		}
	
	
}