초프 - 자바 시스템구성

갓김치·2020년 8월 31일
0

초급프로젝트

목록 보기
1/2
  • 웹프로그래밍 전반

소프트웨어

1. 분석

  • 요구사항정의서: 일반인이 알아들을 수 있도록 1부터100까지 세세하게

2. 설계

  • DB설계
  • 화면설계
  • 기능별관계설정 -> 그 기능들이 메서드가 되는 것 -> 기능들의 목차=인터페이스??

3. 코딩

4. 테스트

Server -> DB

  • 화면(id/pw입력) ----> server(java) -----> db(oracle)
  • 지금배우는 과정
  • 자바에서 모든걸 하자니 소스코드도 길어지고 캡슐화도 안됨
  • 그래서 자바를 3단계로나눔 (controller, service, dao)
    • controller: 화면한테 받은 아이디패스워드를 서비스에 전달
    • service: id는 그대로 두고 pw는 db와 비교하기위해 암호화됨, 웬만한 일 다함
      • 예외 던지기: db오류를 dao한테 받아서 service가 try-catch로 처리하는 것 (혹은 service 아니면 공통모듈에서 처리)
    • dao: db한테 얘기함 내가 id/pw줄테니까 해당하는 사람 정보내놔, 쿼리전달
      • select * from member where mem_id = "a001" and mem__pw = "Asdfasdf"
    • db: 정보맞으면 db에서부터 역순으로 리턴

y_project.package

  • main-view-service-db

MainClass.java

  • 얘만 main()가지고 있음
public class MainClass{
    public static void main(String[] args){
        view v = new View();
        v.startMethod();
    }
}

View.java

public class View{
    public void startMethod(){
        System.out.println("어서오세요 땡땡마트예요");
        System.out.println("원하시는 메뉴를 선택해주세요");
        System.out.println("1. 물품추가");
        System.out.println("2. 로그인");
        System.out.println("3. 종료");
        
        Scanner sc = new Scanner(System.in);
        int select = sc.nextInt();
        
        switch(select) {
        case 1:
            addProduct();
            break;
        case 2:
            //logIn();
            break;
        case 3:
            System.exit(0);
            break;
        default: //잘못입력했을때
            System.out.println("1,2,3,중에 골라주세요");
            break;
        }
    }
    
    private void addProduct(){
        //이름, 가격
        Scanner sc = new Scanner(System.in);
        System.out.println("물건의 이름을 입력해 주세요");
        String name = sc.next();
        System.out.println("물건의 가격을 입력해 주세요");
        int price = sc.nextInt();
        
        Service sv = new Service(); //db로 가기전에 service로 가야함
        boolean result = sv.addProduct(name, price); //등록 잘됐는지? -> t/f
        if(result){
            System.out.println("물품 등록에 성공하였습니다.");
        }
        
    }    

}

Service.java

public class Service{
    public boolean addProduct(String name, int price){
        DBClass db = new DBclass(); //DB로 가기 위해
        boolean result = db.addProduct(name, price);
        return result;
    }
}

DBClass.java

  • 데이터 저장
  • 프로그램만들때 DB없으면 아무것도 할 수 없다
  • DBClass 를 만듬으로서 테이블스페이스가 생성되고
  • 그안에 vector가 테이블 하나
public class DBclass{//테이블스페이스
    private Vector < Product VO > proList = new Vector<>(); //물품들 저장 테이블
    
    public boolean addProduct(String name, int price){
        ProductVO pv1 = new ProductVO(name, price);
        boolean result = proList.add(pv1);
        return result;
    }
}

ProductVO.java

  • vo는 따로 생성자를 만들지않다, 변수들이 다 private이기때문에
  • 생성자 대신 getter setter
profile
갈 길이 멀다

0개의 댓글