내용

글번호 631
작성자 heojk
작성일 2017-04-20 17:41:09
제목 신창선님의 여친을 관리하자. MVC 기반 애플리케이션
내용 JDBC 드라이버 클래스파일을 빌드패스에 포함시키세요. girls_ddl.sql
1
2
3
4
5
6
7
CREATE TABLE girls (
  phone VARCHAR2(20) PRIMARY KEY,
  name VARCHAR2(30),
  address VARCHAR2(50),
  date_area VARCHAR2(20),
  etc VARCHAR2(500)
);
GirlVO.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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(인터페이스)
1
2
3
4
5
6
7
8
9
10
11
12
13
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(뷰)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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(컨트롤로)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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() 구현한 클래스)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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();
  }
}