[JAVA] 성적 처리 인터페이스 구현 2차
by mini_min◾ 기능
1. 등록
2. 수정
3. 삭제
4. 리스트
5. 이름검색
6. 학번검색
7. 종료
◾ VALUES 값으로 저장할 것은?
- 학번(기본키)
- 이름
- 국어
- 영어
- 수학
- 총점, 평균 (국영수 이용)
private String hak;
private String name;
private int kor;
private int eng;
private int mat;
public String getHak() {
return hak;
}
public void setHak(String hak) {
this.hak = hak;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMat() {
return mat;
}
public void setMat(int mat) {
this.mat = mat;
}
public int getTot() {
return kor + eng + mat;
}
public int getAve() {
return getTot() / 3;
}
}
◾ 인터페이스 (Score)
정보등록 : 정보 등록만 하면 되니까 void + insertScore(ScoreVO vo) + 중복 예외 던지기 throws MyDuplicationException;
= ScoreVO 에 저장할 것임.
수정update : 마찬가지로 학번을 받아서 읽어서 수정
삭제delete : boolean (참거짓으로 삭제) deleteScore(기본값 학번) - 학번으로 삭제
리스트 업 : listScore() 만들기 - ScoreVO 를 list 객체로 만들어서 업데이트하기
이름 검색 : listScore(String name) 만들기 - ScoreVO 를 list 객체로 만들어서 업데이트하기
학번 검색 : ScoreVO readScore(학번 읽기)
등록 : insertScore(ScoreVO vo)
수정 : ScoreVO readScore(String hak)
삭제 : boolean deleteScore(String hak)
리스트업 : List<ScoreVO> listScore()
이름 : List<ScoreVO> listScore(String name);
학번 : ScoreVO readScore(String hak)
💡 학번이랑 이름이랑 똑같은 검색인데, List와 vo로 다른 이유
: 학번은 중복값이 없기 때문에 List 클래스로 사용하지 않음
◾ 인터페이스 구현 (Score)
public class ScoreImpl implements Score {
//Score 인터페이스 를 구현한 ScoreImpl 생성
List 클래스에 학생 정보를 저장한 ScoreVO 를 list로 저장하는 객체를 생성한다. (ArrayList 사용)
ArrayList = 중복값 허용 하는 List 클래스
private List<ScoreVO> list = new ArrayList<>();
◾ 등록 : @Override public void insertScore(ScoreVO vo) throws MyDuplicationException
readScore 를 했을 때 vo의 hak 이 null이면 list 객체 값에 vo 를 저장한다.
//학번 검색시 일치하는게 없으면 없다고 출력,
//아니라면 저장
if(readScore(vo.getHak()) != null) {
throw new MyDuplicationException("등록된 학번입니다.");
}
list.add(vo)
}
◾ 리스트 : @Override public List<ScoreVO> listScore()
리스트를 그대로 출력하는 것!
return list;
◾ 이름검색 : @Override public List<ScoreVO> listScore(String name)
기존에 있는 List<Score> list 는 등록 받은 학생 정보를 vo에 넣는데 저장할 때 사용했으니, 저장된 vo 에서 옮긴 것을 새로운 list 객체에 저장해야한다.
List<ScoreVO> finds = new ArrayList<>();
for(ScoreVO vo : list) {
if(vo.getName().indexOf(name)>=0) {
find.add(vo)
}
}
return finds;
◾ 학번검색 : @Override public ScoreVO readScore(String hak)
중복값을 갖지 않기 때문에 List 객체로 만들지 않았다.
리스트를 보내고 vo 리스트에서 입력받은 동일한 학번을 찾아서 return 한다.
public ScoreVO readScore(String hak) {
for(ScoreVO vo : list) {
if(vo.getHak().equals(hak)) {
return vo;
}
}
return null;
}
◾ 삭제 : @Override public ScoreVO deleteScore(String hak)
삭제하기 위해, readScore로 hak 학번 이용해서 vo 일치하는 vo 객체를 모두 뽑아내고,vo 객체가 null 이 아니라면 삭제하고 true 값을 넘겨준다. 만약 데이터가 없다면 false 를 반환한다.
ScoreVO vo = readScore(hak);
if(vo != null) {
list.remove(vo);
return true;
}
return false;
}
'프로젝트 실습 > [Project] Score' 카테고리의 다른 글
[JAVA] JDBC 성적문제 (1) (DTO/DAO 인터페이스+구현) (0) | 2022.08.21 |
---|---|
[JAVA] 성적처리에서 자동으로 시스템 날짜 찍기 (0) | 2022.07.31 |
[JAVA] 성적처리에서 DateUtil (유효한 날짜 형식 찍기) (0) | 2022.07.31 |
[JAVA] 성적 처리 UI 작성 (만들기) 3차 (0) | 2022.07.31 |
[JAVA] 성적 처리 요구사항(시나리오) 1차 (0) | 2022.07.30 |
블로그의 정보
개발자 미니민의 개발로그
mini_min