일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 함수 선언
- SQL
- 웹브라우저 수용도
- Doit입문SQL
- 숫자형식오류
- 자바 예외
- 웹 브라우저 전쟁
- 크롤링
- DoIt
- DoitSQL입문
- 예제
- 함수
- 자바
- 우아한테크
- html
- 예외
- 배열 예제
- 숫자 형식
- 배열 3요소
- DoitSQL
- 페이지분석
- 생성자
- 자바 오류
- R1C3
- dbms
- HTML역사
- SQL입문
- 크롤링 오류
- 키-값 데이터베이스
- 데이터베이스
Archives
- Today
- Total
프로그래밍
[자바 기초] day17 : MVC 패턴(VO 두개 이상) 본문
728x90
반응형
2023.05.25.목
VO 두개 이상인 MVC 패턴
객체의 자료형이 다르면 VO/DAO를 분리하여 만들어야 한다
다음 프로젝트는 Member, Product 두 가지의 자료형으로 구성되어 있다
MemberDAO
package model;
import java.util.ArrayList;
// 회원목록출력
// 회원가입,로그인,로그아웃,마이페이지,회원탈퇴
public class MemberDAO {
private ArrayList<MemberVO> datas;
public MemberDAO() {
datas = new ArrayList<MemberVO>();
datas.add(new MemberVO("admin", "1234", "관리자"));
datas.add(new MemberVO("coding_helper", "timo", "작은 티모"));
}
public ArrayList<MemberVO> selectAll(MemberVO mVO) {
return datas;
}
public MemberVO selectOne(MemberVO mVO) {
return null;
}
public boolean insert(MemberVO mVO) {
boolean flag = false;
for (MemberVO data : datas) {
if (data.equals(mVO)) {
flag = true;
System.out.println(" 로그: MemberDAO: insert(): 아이디 중복");
break;
}
}
if (flag) {
return false;
}
datas.add(new MemberVO(mVO.getMid(), mVO.getMpw(), mVO.getName()));
/*
* datas.add(new MemberVO()); -> datas DB공간에 new 새로운 데이터를 추가
* MemberVO(데이터1,데이터2,데이터3) -> 데이터들을 mVO에서 추출하면됨
*/
return true;
// 1. mVO가 의미하는것 == 회원가입할 정보
// 2. mVO를내가 가지고 있는 datas에 넣음
// 3. PK이기 때문에 중복검사하고 성공시 add 실패시 반환
}
public boolean update(MemberVO mVO) {
return true;
}
public boolean delete(MemberVO mVO) {
return true;
}
}
ProductDAO
package model;
import java.util.ArrayList;
// 목록출력,목록검색_이름,목록검색_가격순,목록검색_조회수
public class ProductDAO {
private ArrayList<ProductVO> datas;
private static int PK = 1001;
public ProductDAO() {
datas = new ArrayList<ProductVO>();
datas.add(new ProductVO(PK++, "장갑", 12000, 2));
datas.add(new ProductVO(PK++, "화장지", 1000, 1));
datas.add(new ProductVO(PK++, "장화", 23000, 0));
datas.add(new ProductVO(PK++, "지갑", 120000, 1));
datas.add(new ProductVO(PK++, "화분", 5500, 2));
}
public ArrayList<ProductVO> selectAll(ProductVO pVO) {
// 여러가지의 기능을 하나의 메서드에 작성
// 높은 응집도를 위해
if (pVO == null) {
return datas;
} else if (pVO.getName().equals("비싼상품") && pVO.getPrice() != 0) { // 더 비싼
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() > pVO.getPrice()) {
mdatas.add(data);
}
}
return mdatas;
} else if (pVO.getName().equals("싼상품") && pVO.getPrice() != 0) { // 더 싼
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() < pVO.getPrice()) {
mdatas.add(data);
}
}
return mdatas;
} else if (pVO.getName().equals("필터")) { // 필터검색
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() >= pVO.getPrice() && data.getPrice() <= pVO.getCnt()) {
mdatas.add(data);
}
}
return mdatas;
} else {
// 상품목록 출력을 할때는 인자가 null이므로
// pVO null이 아니라면 '이름으로 검색'
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getName().contains(pVO.getName())) {
mdatas.add(data);
}
}
return mdatas;
}
}
public ProductVO selectOne(ProductVO pVO) {
if (pVO.getName().equals("최고가")) { // 가장 비싼
int max =datas.get(0).getPrice();
int maxIndex = 0;
for (int i = 1; i < datas.size(); i++) {
if (max<datas.get(i).getPrice()) {
max = datas.get(i).getPrice();
maxIndex = i;
}
}
return datas.get(maxIndex);
} else if (pVO.getName().equals("최저가") && pVO.getPrice() == 0) { // 가장 싼
}
return null;
}
public boolean insert(ProductVO pVO) {
return true;
}
public boolean update(ProductVO pVO) {
return true;
}
public boolean delete(ProductVO pVO) {
return true;
}
}
https://github.com/jihyean/Java/tree/main/day17
728x90
반응형
'자바 > 자바 기초' 카테고리의 다른 글
[자바 기초] day20 : 자바로 크롤링 (1) | 2023.05.31 |
---|---|
[자바 기초] day19 : MVC 패턴 심화(회원관리) (1) | 2023.05.30 |
[자바 기초] day16 : MVC 패턴(오버라이딩) (0) | 2023.05.30 |
[자바 기초] day15 : MVC 예제(학생부 프로그램) (0) | 2023.05.23 |
[자바 기초] day15 : MVC(Model, View, Controller) (0) | 2023.05.23 |
Comments