내용

글번호 631
작성자 heojk
작성일 2017-04-20 17:41:09
제목 신창선님의 여친을 관리하자. MVC 기반 애플리케이션
내용 JDBC 드라이버 클래스파일을 빌드패스에 포함시키세요. girls_ddl.sql
CREATE TABLE girls (
  phone VARCHAR2(20) PRIMARY KEY,
  name VARCHAR2(30),
  address VARCHAR2(50),
  date_area VARCHAR2(20),
  etc VARCHAR2(500)
);
GirlVO.java
package kr.co.kosa.girls.model;

public class GirlVO {
	private String phone;
	private String name;
	private String address;
	private String dateArea;
	private String etc;
	
	public GirlVO() {
		super();
	}

	public GirlVO(String phone, String name, String address, String dateArea, String etc) {
		super();
		this.phone = phone;
		this.name = name;
		this.address = address;
		this.dateArea = dateArea;
		this.etc = etc;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getDateArea() {
		return dateArea;
	}

	public void setDateArea(String dateArea) {
		this.dateArea = dateArea;
	}

	public String getEtc() {
		return etc;
	}

	public void setEtc(String etc) {
		this.etc = etc;
	}

	@Override
	public String toString() {
		return "GirlVO [phone=" + phone + ", name=" + name + ", address=" + address + ", dateArea=" + dateArea
				+ ", etc=" + etc + "]";
	}
}
GirlManagerDAO.java(인터페이스)
package kr.co.kosa.girls.dao;

import java.util.List;

import kr.co.kosa.girls.model.GirlVO;

public interface GirlManagerDAO {
	void insertNewGirl(GirlVO girl);
	void updateGirlInfo(GirlVO girl);
	void deleteGirlInfo(String phone);
	List<GirlVO> selectAllMyGirls();
	GirlVO selectGirlInfoByPhone(String phone);
}
GirlManagerView.java(뷰)
package kr.co.kosa.girls.view;

import java.util.List;
import java.util.Scanner;

import kr.co.kosa.girls.model.GirlVO;

public class GirlManagerView {
	static Scanner scan = new Scanner(System.in);
	
	public static char getMenu() {
		char menu;
		//메뉴 디스플레이
		System.out.println("메뉴를 입력하세요.");
		System.out.println("여친정보 입력(i), 여친정보 수정(u), 여친정보 삭제(d), 여친 찾기(s), 여친 리스트(l), 종료(q)");
		System.out.print("메뉴 : ");
		menu = scan.nextLine().charAt(0);
		//메뉴 입력받기
		return menu;
	}
	
	public static GirlVO inputGirlInfo() {
		GirlVO girl = new GirlVO();
		//스캐너로 여친 정보 입력받아
		//걸객체에 저장하는 코드
		System.out.print("연락처 : ");
		girl.setPhone(scan.nextLine());
		System.out.print("이름 : ");
		girl.setName(scan.nextLine());
		System.out.print("주소 : ");
		girl.setAddress(scan.nextLine());
		System.out.print("데이트 장소 : ");
		girl.setDateArea(scan.nextLine());
		System.out.print("참고사항 : ");
		girl.setEtc(scan.nextLine());
		return girl;
	}
	
	public static String inputGirlPhone() {
		//스캐너로 전화번호 입력받아 리턴하는 코드 작성
		System.out.print("연락처 : ");
		String phone = scan.nextLine();
		return phone;
	}
	
	public static void printGirlInfo(GirlVO girl) {
		System.out.println(girl);
	}
	
	public static void printGirlList(List<GirlVO> girls) {
		for(GirlVO girl : girls) {
			System.out.println(girl);
		}
	}
}
GirlManager.java(컨트롤로)
package kr.co.kosa.girls.controller;

import java.util.List;

import kr.co.kosa.girls.dao.GirlManagerDAO;
import kr.co.kosa.girls.model.GirlVO;
import kr.co.kosa.girls.view.GirlManagerView;

public class GirlManager {
	GirlManagerDAO dao;
	public GirlManager(GirlManagerDAO dao) {
		this.dao = dao;
	}
	
	public void launchApplication() {
		while(true) {
			char menu = GirlManagerView.getMenu();
			switch(menu) {
			case 'i' : 
				//데이터를 입력받는 메서드 호출
				GirlVO girl = GirlManagerView.inputGirlInfo();
				System.out.println(girl);
				dao.insertNewGirl(girl);
				break;
			case 'u' : 
				//데이터를 입력받는 메서드 호출
				String updatePhone = GirlManagerView.inputGirlPhone();
				GirlVO ugirl = dao.selectGirlInfoByPhone(updatePhone);
				GirlManagerView.printGirlInfo(ugirl);
				ugirl = GirlManagerView.inputGirlInfo();
				dao.updateGirlInfo(ugirl);
				break;
			case 'd' : 
				//데이터를 입력받는 메서드 호출
				//뷰의 메서드를 호출해서 전화번호 입력받기
				String phone = GirlManagerView.inputGirlPhone();
				dao.deleteGirlInfo(phone);;
				break;
			case 's' : 
				//데이터를 입력받는 메서드 호출
				String sphone = GirlManagerView.inputGirlPhone();
				GirlVO sgirl = dao.selectGirlInfoByPhone(sphone);
				GirlManagerView.printGirlInfo(sgirl);
				break;
			case 'l' : 
				//데이터를 입력받는 메서드 호출
				List<GirlVO> girls = dao.selectAllMyGirls();
				GirlManagerView.printGirlList(girls);
				break;
			}
		}
	}
}
GirlManagerDAOImpl.java(biz() 구현한 클래스)
package kr.co.kosa.girls.dao;

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

import kr.co.kosa.girls.model.GirlVO;

public class GirlManagerDAOImpl implements GirlManagerDAO {

	static{
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	private Connection getConnection() {
		Connection con = null;
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "hr";
		String pw = "hr";
		try {
			con = DriverManager.getConnection(url, id, pw);
		}catch(SQLException e) {
			throw new RuntimeException(e.getMessage());
		}
		return con;
	}
	
	private void closeConnection(Connection con) {
		if(con!=null) {
			try{
				con.close();
			}catch(Exception e){
				//nothing
			}
		}
	}
	
	@Override
	public void insertNewGirl(GirlVO girl) {
		System.out.println("insertNewGirl");
		String sql = "insert into girls (phone, name, address, date_area, etc) values (?,?,?,?,?)";
	}

	@Override
	public void updateGirlInfo(GirlVO girl) {
		System.out.println("updateGirlInfo");
		String sql = "update girls set name=?, address=?, date_area=?, etc=? where phone=?";
	}

	@Override
	public void deleteGirlInfo(String phone) {
		System.out.println("deleteGirlInfo");
		String sql ="delete from girls where phone=?";
	}

	@Override
	public List<GirlVO> selectAllMyGirls() {
		System.out.println("selectAllMyGirls");
		String sql = "select * from girls";
		List<GirlVO> girls = new ArrayList<>();
		return girls;
	}

	@Override
	public GirlVO selectGirlInfoByPhone(String phone) {
		System.out.println("selectGirlInfoByPhone");
		String sql = "select * from girls where phone=?";

		return null;
	}
}
GirlManagerMain.java
package kr.co.kosa.girls;

import kr.co.kosa.girls.controller.GirlManager;
import kr.co.kosa.girls.dao.GirlManagerDAO;
import kr.co.kosa.girls.dao.GirlManagerDAOImpl;

public class GirlManagerMain {

	public static void main(String[] args) {
		GirlManagerDAO dao = new GirlManagerDAOImpl();
		GirlManager manager = new GirlManager(dao);
		manager.launchApplication();
	}
}