
사용자가 view에서 3을 입력했을 때는 주민 1명을 출력해야 합니다
코딩 순서
1. 주민의 고유 번호를 사용자에게 입력받는다
2. Model 객체를 생성하여 그 번호를 찾아온다
3. 그 번호가 가지고 있는 나머지 데이터(이름 또는 종류)도 view에 출력한다
int num = view.getNum();
주민의 고유번호를 사용자에게 입력받는다
이미 컴퓨터가 지정해준 번호를 말한다 == PK
// 번호 받아오기
public int getNum() {
int num; // scope(유효범위) 이슈
while(true) {
try {
System.out.print("주민번호입력 >> ");
num = scanner.nextInt();
}
catch(InputMismatchException e) {
scanner.nextLine();
System.out.println("정수만 입력가능합니다!");
System.out.println("다시 확인 후 입력해주세요");
continue; // 밑에 진행 막기
}
if(100 <num && num < 200) { // 제대로 입력시
break;
}
System.out.println("번호확인후 다시 입력해주세요..");
}
return num;
}
View의 getNum() 함수
getNum에서는
주민번호를 입력받는다
while(true)문을 이용해 현재 가지고 있는 주민 번호만 입력을 받을 수 있도록한다
ex) 101, 102 주민이 있다고 하면 103주민을 입력시 다시 입력을 받기 위함
정수가 아닌 다른 숫자를 입력했을 경우
try~catch문을 이용해 예외 처리를 해준다
catch 안의 continue는 잘 못 입력했을 때 break에 도달하지 못하도록 코딩을 했다
Model에서 DB 정보 데이터를 가져오는 것이기 때문에
PersonDTO personDTO = new PersonDTO();
객체 생성
personDTO.setNum(num);
입력한 주민 번호 setNum으로 멤버변수 할당
PersonDTO data = model.selectOne(personDTO);
selectOne() 메서드에 그 입력받은 주민 번호를 넘겨
// 지금보고 있는 데이터 주민이 검색어를 포함하고 있다면
public PersonDTO selectOne(PersonDTO personDTO) {
// 내가 보고 있는 데이터의 번호와 입력받은 번호 비교
for(int i=0; i<this.datas.size(); i++) {
if(this.datas.get(i).getNum() == personDTO.getNum()) {
int num = this.datas.get(i).getNum();
String name = this.datas.get(i).getName();
String type = this.datas.get(i).getType();
PersonDTO data = new PersonDTO();
data.setNum(num);
data.setName(name);
data.setType(type);
return data;
}
}
return null;
}
PersonDTO personDTO 에는 번호가 넘어옴.
this.datas.get(i).getNum() == personDTO.getNum()
찾는 값과 내가 갖고 있는 데이터에 그 번호(PK)가 있으면~~
그 번호의 getNum, getName, getType 한다
view.printData(data);
한 줄 출력을 한다
else if(command == 3) {
int num = view.getNum();
PersonDTO personDTO = new PersonDTO();
personDTO.setNum(num);
PersonDTO data = model.selectOne(personDTO);
view.printData(data);
}
Controller의 코드 일부분
'🍏 개발일기' 카테고리의 다른 글
| MVC연습하기 - 5. 삭제 (0) | 2025.10.28 |
|---|---|
| interface 이해하기 (with 추상클래스) (0) | 2025.10.26 |
| MVC 연습하기 - 2.전체 출력 (0) | 2025.10.24 |
| MVC 연습하기 - 1. 주민 추가 (0) | 2025.10.24 |
| MVC디자인패턴 (0) | 2025.10.23 |