5.JDBC(캡슐화하기,read)

sana·2022년 8월 2일

JDBC

목록 보기
5/14

이제까지
CRUD (조작)
방법들을 알아봤는데
create - 입력
read - 조회
update - 수정
delete - 삭제

이것들을 따로따로 메인함수에 넣으니까 재사용이안됨
그래서 재사용이 가능하게 메인함수에서 빼내서 별도의 함수로 존재하게 만들자

NoticeService라는 별도의 캡슐을 만들고 거기다가 crud작업을 모아두자
캡슐화 : 연관된 목적을 가지는 변수와 함수를 하나의 클래스로 묶어
외부에서 쉽게 접근하지 못하도록 은닉하는 것이다

일단 NoticeService클래스를 만들건데 일단 패키지를 생성하자
패키지명을 연관된 이름으로 하려고 함

NoticeService랑 이름이 같은 클래스랑 충돌이 나지 않도록
패키지명을 설정해주기 + 연관된 이름으로 하기
를 수행 하려면 도메인 이름으로 하는게 좋다


나는 이렇게 만듬~

그리고
public List<?> getList(){
return ?;
}
만듬
List(?라는 객체타입만 다루는)라는 반환형을 반환하는 getList함수를 만들어줌
getList함수는 리스트를 주는 녀석으로 만들기위해 select쿼리문을 썻던 클래스에서 복사해서 가져오자

이 코드들을 복사해서 getList함수에 넣었따

id,title,writerId,regDate,content,hit 이6개를 List로 반환해야하는데
이 6개를 담을수있는 더 큰 개념적인 단위인 클래스를 추가해보자

패키지명은 개체라는 의미로 아까만든 패키지에서 service대신 entity로 바꿔서 만들어주고
클래스 네임은 Notice로 만들어보자

그리고 기본적 속성을 정의해주자
private int id;
private String title;
private String writerId ;
private Date regDate;
private String content ;
private int hit;
이것들을 넣어줌

Private 으로 선언된 인스턴스 필드에 접근하기 위해서 Getter와 Setter를 사용합니다
그리고 이 값들을 세팅 해야하니까 geter seter가 필요하니까
우클릭 - 소스 - 제너럴게터세터 만들기

그리구
6가지 데이터 값을 채울때 초기화를 하면서 값을 채워야하니까 생성자 만들고
필드를 가지고있는 생성자도 만들기(우클릭 - 소스 - 제너레이트 컨스트럭쳐 유징필드)
불필요한 super();는 지우셈

생성자와 필드가지고있는 생성자에서 중복되는 내용 있으면 지우기

이제 다시 캡슐화 하려던 클래스로 돌아오자
notice라는 객체하나 만들자
Notice notice = new Notice(); (노티스 임포트해주고~)
괄호 안에다가 매개변수 생성자를 통해 담아주자
Notice notice = new Notice(
id,
title,
writerId,
regDate,
content,
hit
);

notice객체를 만들었으니
notice를 반환하기위해서
위에 <?> 제네릭 안에 Notice를 넣어주자
public List<Notice> getList() (List 임포트해주고~)
그리고 반환하기 위한 준비로
List<Notice> list = new ArrayList<Notice>(); 만들고 arrayList임포트해주고

그리고 이제 반복되면서 출력하는게아니라 아까 만든녀석을 List에 add 하게되면 목록에
하나씩 담기게 됨

그리고 return list;로 list반환하게 함

Class.forName("oracle.jdbc.driver.OracleDriver");여기 예외처리 던져버리기
rs.close여기도 예외처리 던져버리기

getList함수 왼쪽에 - 표시 클릭하면 함수 열었다 닫았다 할수있음

profile
공부한내용 정리하고있는 개린이입니다

0개의 댓글