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();
}
}
|