일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 크롤링
- 예외
- R1C3
- 함수
- 생성자
- DoIt
- 자바
- 웹브라우저 수용도
- 배열 예제
- 우아한테크
- 숫자형식오류
- SQL입문
- Doit입문SQL
- 키-값 데이터베이스
- 함수 선언
- dbms
- DoitSQL입문
- html
- 예제
- 배열 3요소
- 웹 브라우저 전쟁
- 자바 오류
- 자바 예외
- 데이터베이스
- 페이지분석
- 숫자 형식
- 크롤링 오류
- DoitSQL
- SQL
- HTML역사
Archives
- Today
- Total
프로그래밍
[자바 기초] MVC 패턴 : 영화 크롤링해서 예매하기 본문
728x90
반응형
MVC 패턴 : 영화 크롤링해서 예매하기
영화 정보를 크롤링하여 MVC 패턴으로 예매하는 기능을 가진 프로그램 구현하기
이전 MVC 패턴 게시글
2023.05.23 - [자바 기초] - [자바 기초] day15 : MVC(Model, View, Controller)
기본 설계서
MemberVO
아이디(PK)
비밀번호
이름
FilmVO(영화)
번호(PK)
이름
개봉일,가격,가수,댓글수 등...
예매수,조회수,구매횟수 등...
회원가입시 PK 중복체크 필수 -> id
크롤링으로 샘플데이터 확보
프로그램 - View
- 로그인
- 회원가입
- 비회원 예매
- 프로그램 종료
사용자모드 - View
- 목차
- 영화 목록 출력
- 인기순위 목록 출력
- 예매하기
- 검색하기(이름으로 검색)
- 프로그램 종료
주의 사항
- 유효성 검사 - View
- 예외 처리 - View
- 기능 검사 - DAO
- 로그 - DAO
- 사용자편의성 - 전체 다 고려
변수,메서드 명
DAO는 고정이고
View쪽 출력 형식: 기능+주제+성공실패
[ Model ] Member 설계서
MemberVO
private String mid // 아이디(PK)
private String mpw // 비밀번호
private String name // 이름
// 생성자 ---> 모든 값 입력 받아야 생성
public MemberVO(String mid,String mpw,String name) {
this.mid=mid;
this.mpw=mpw;
this.name=name;
}
getter setter
toString 오버라이딩
equals 오버라이딩 // 아이디(PK)가 같다면 같은 객체
//////////////////////////////////////////////////////////////////////////////////////////////////////////
MemberDAO
실패 혹은 null 일시 ---> 로그 출력합니다
//*******************************************************************************//
private ArrayList<MemberVO> datas;
생성자 MemberDAO() {
datas = new ArrayList<MemberVO>(); //객체 생성
datas.add(new MemberVO("admin", "1234", "관리자"));
datas.add(new MemberVO("coding_helper", "timo", "작은 티모"));
}
//*******************************************************************************//
public boolean insert(MemberVO mVO)
회원가입 // 아이디 중복 검사 후 가입 > flag 사용 예정
// 가입 성공 ---> return true; 가입 실패 ---> return false;
getMid(), getMpw(), getName()
아이디, 비밀번호, 이름 각 인자로 받음
//*******************************************************************************//
public MemberVO selectOne(MemberVO mVO)
로그인 // 해당 아이디 있는지 확인
// 비밀번호 일치하는지 확인
// 존재확인 성공 ---> return 해당 객체; 존재확인 실패 ---> return null;
getMid()로 해당 아이디 존재하는지 확인 후에 있다면 getMpw()로 비밀번호 확인
로그인 성공--->해당 객체 반환
로그인 실패--->return null;
//*******************************************************************************//
public ArrayList<MemberVO> selectAll(MemberVO mVO)
return null; //회원 목록 출력 기능
// 해당 사항 없으므로 return null
해당 사항 없음
//*******************************************************************************//
public boolean update(MemberVO mVO)
return true; // 해당 회원의 비밀 번호 변경
return false;
//*******************************************************************************//
public boolean delete(MemberVO mVO)
회원탈퇴 // 해당 아이디 있는지 확인 후 삭제
// 삭제 성공 ---> return true; 삭제 실패 ---> return false;
getMid()로 해당 아이디 존재하는지 확인 후에 있다면 삭제 후 성공/실패 반환
//*******************************************************************************//
[ 우선순위 ]
객체 생성
회원가입
로그인
회원탈퇴
회원 비밀번호 변경
[ Model ] Film 설계서
FilmVO
private int num // 아이디(PK)
private String name // 이름
private String odate // 개봉일
private int cnt // 예매수
// 생성자 ---> 모든 값 입력 받아야 생성
public FilmVO(int num,String name,String odate) {
this.num=num; // Pk
this.name=name; // 영화이름
this.odate=odate; // 개봉일
this.cnt=0; // 예매수
System.out.println(" 로그: FilmVO(): 영화 생성");
}
getter setter
toString 오버라이딩
//////////////////////////////////////////////////////////////////////////////////////////////////////////
FilmDAO
실패 혹은 null 일시 ---> 로그 출력
//*******************************************************************************//
private ArrayList<FilmVO> datas;
// 생성자 ---> 크롤링 통하여 데이터 생성
public FilmDAO() {
this.datas=Crawling.sample();
}
//*******************************************************************************//
public ArrayList<FilmVO> selectAll(FilmVO fVO){
fVO가 널일 경우: 전체 목록 출력
fVO.getNum()이 1일 경우: 인기순 영화 출력(예매수 높은 순)
두 경우 모두 해당 안될 경우: 이름 검색
}
//*******************************************************************************//
public FilmVO selectOne(FilmVO fVO) {
// 영화의 존재유무 확인
// 입력한 fVO 값의 Num과
// datas의 Num과 일치하는지 확인
존재 ---> return fVO
존재하지 않으면 ---> return null
}
//*******************************************************************************//
public boolean insert(FilmVO fVO) {
return false;
// 해당 사항 없음
}
//*******************************************************************************//
public boolean update(FilmVO fVO) { //예매할 영화 Pk,티켓 수 입력
//예매할 영화 Pk,티켓 수 입력받음
// 해당 영화 존재시 예매
예매 성공 ---> return true
예매 실패 ---> return false 로그 출력
}
//*******************************************************************************//
public boolean delete(FilmVO fVO) {
return false;
// 해당 사항 없음
}
//*******************************************************************************//
[ 우선순위 ]
객체 생성
전체 목록 출력
이름 검색
존재 유무 확인
예매
인기순 목록 출력
https://github.com/jihyean/Java/tree/main/HW04
728x90
반응형
'프로젝트' 카테고리의 다른 글
[최종 프로젝트] 장바구니 모듈화 (0) | 2023.09.04 |
---|---|
[최종 프로젝트] VIEW 상품 상세 페이지네이션 (0) | 2023.09.04 |
[자바] 올리브영 판매 랭킹 크롤링 (0) | 2023.06.04 |
[자바 기초] day08 : 학생부 프로그램 (0) | 2023.05.15 |
[자바 기초] 선택정렬 (0) | 2023.05.06 |
Comments