JDBC 5

5730 단어 자바자바

package kr.or.ddit.basic;

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

import util.JDBCUtil;
import util.ScanUtil;

/*

  • 회원을 관리하는 프로그램을 작성하시오.
  • (MYMEMBER 테이블 이용)
  • 아래 메뉴의 기능을 모두 구현하시오.(CRUD 기능 구현하기)
  • 메뉴 예시)
  • == 작업 선택 ==
    1. 자료 추가
    1. 자료 삭제
    1. 자료 수정
    1. 전체 자료 출력
    1. 작업 끝
  • 처리조건)
  • 1) 자료 추가에서 '회원ID'는 중복되지 않는다.(중복되면 다시 입력받는다.)
  • 2) 삭제는 '회원ID'를 입력 받아서 처리한다.
  • 3) 자료 수정에서 '회원ID'는 변경되지 않는다.
    */

public class JdbcTest06 {

JDBCUtil jdbc = JDBCUtil.getInstance();

public static void main(String[] args) {
	new JdbcTest06().start();
}

private void start() {
	while (true) {
		System.out.println("== 작업 선택 ==");
		System.out.println("1. 자료 추가");
		System.out.println("2. 자료 삭제");
		System.out.println("3. 자료 수정");
		System.out.println("4. 전체 자료 출력");
		System.out.println("0. 작업 끝");
		System.out.println("============");
		System.out.print(">> ");

		int input = ScanUtil.nextInt();
		switch (input) {
		case 1: // 자료 추가
			insert();
			break;

		case 2: // 자료 삭제
			delete();
			break;

		case 3: // 자료 수정
			update();
			break;

		case 4: // 전체 자료 출력
			printAll();
			break;

		case 0: // 작업 끝
			System.out.println("종료합니다.");
			System.exit(0);
		}
	}
}

// 전체 자료 출력 - ID, NAME, TEL, ADDR
private void printAll() {
	String sql = "SELECT MEM_ID,"
			+ "          MEM_NAME,"
			+ "          MEM_TEL,"
			+ "          MEM_ADDR"
			+ "     FROM MYMEMBER";

	List<Map<String, Object>> memList = jdbc.selectList(sql);

	System.out.println("==============================");
	System.out.println("아이디\t이름\t전화번호\t주소");

	for (Map<String, Object> mem : memList) {
		System.out.println("------------------------------");
		System.out.println(mem.get("MEM_ID")
				  + "\t" + mem.get("MEM_NAME")
				  + "\t" + mem.get("MEM_TEL")
				  + "\t" + mem.get("MEM_ADDR"));
	}
	System.out.println("==============================");
}

// 아이디로 조회 후 NAME, PASS, TEL, ADDR 수정
private void update() {
	System.out.print("정보를 수정할 아이디 : ");
	String id = ScanUtil.nextLine();

	System.out.print("수정할 이름 > ");
	String name = ScanUtil.nextLine();

	System.out.print("수정할 비밀번호 > ");
	String pass = ScanUtil.nextLine();

	System.out.print("수정할 전화번호 > ");
	String tel = ScanUtil.nextLine();

	System.out.print("수정할 주소 > ");
	String addr = ScanUtil.nextLine();

	// 아이디가 일치하는 정보만 수정
	String sql = "UPDATE MYMEMBER"
			+ "      SET MEM_NAME = ?"
			+ "        , MEM_PASS = ?"
			+ "        , MEM_TEL = ?"
			+ "        , MEM_ADDR = ?"
			+ "    WHERE MEM_ID = ?";

	ArrayList<Object> param = new ArrayList<>();
	param.add(name);
	param.add(pass);
	param.add(tel);
	param.add(addr);
	param.add(id);

	if (jdbc.update(sql, param) > 0) {
		System.out.println(id + "의 회원정보 수정 완료");
	} else {
		System.out.println(id + "의 회원정보 수정 실패");
	}
}

private void delete() {
	System.out.print("삭제할 아이디 : ");
	String id = ScanUtil.nextLine();

	// 아이디가 일치하는 정보만 삭제
	String sql = "DELETE MYMEMBER"
			+ "    WHERE MEM_ID = ?";

	ArrayList<Object> param = new ArrayList<>();
	param.add(id);

	if (jdbc.update(sql, param) > 0) {
		System.out.println(id + "의 회원정보 삭제 성공");
	} else {
		System.out.println(id + "의 회원정보 삭제 실패");
	}
}

// 등록 - ID(PK), NAME, PASS, TEL, ADDR
private void insert() {
	String id;
	while (true) {
		System.out.print("아이디 > ");
		id = ScanUtil.nextLine();

		String sql = "SELECT MEM_ID"
				+ "     FROM MYMEMBER"
				+ "    WHERE MEM_ID = ?";

		ArrayList<Object> param = new ArrayList<>();
		param.add(id);

		Map<String, Object> idList = jdbc.selectOne(sql, param);
		if (idList.size() != 0) {
			System.out.println("아이디가 중복됩니다.");
			continue;
		} else {
			break;
		}
	}

	System.out.print("이름 > ");
	String name = ScanUtil.nextLine();

	System.out.print("비밀번호 > ");
	String pass = ScanUtil.nextLine();

	System.out.print("전화번호 > ");
	String tel = ScanUtil.nextLine();

	System.out.print("주소 > ");
	String addr = ScanUtil.nextLine();

	String sql = "INSERT INTO MYMEMBER"
			+ "   VALUES (?, ?, ?, ?, ?)";

	ArrayList<Object> param = new ArrayList<>();
	param.add(id);
	param.add(name);
	param.add(pass);
	param.add(tel);
	param.add(addr);

	if (jdbc.update(sql, param) > 0) {
		System.out.println("자료 추가 성공");
	} else {
		System.out.println("자료 추가 실패");
	}
}

}

좋은 웹페이지 즐겨찾기