2022.01.05 TIL

서승원·2022년 1월 5일
0

TIL

목록 보기
49/68

DAO Pattern + 방명록
O-R mapping 을 통해 완성한 방명록을 DAO Pattern을 이용해 분업에 용이한 형태로 만들어봤다.

우선 기존의 Bang04VO 클래스를 분리해 별도의 클래스로 Bang04DTO 로 선언한다. Eclipse 에서 지원하는 getter,setter 기능을 사용했다. O-R Mapping에서 사용한 것과 같은 형태다.
메인이 되는 Test473.java 파일이다. SELECT를 위한 SQL 문을 실행하는 JDBC 영역을 다 별도의 클래스로 분리했다.

분리를 위해 가장 먼저 인터페이스를 만들어야 한다. 틀을 잡기 위해서 인터페이스로 만든다. 이 때 중요한 것은 멤버변수, 리턴형식을 잘 설정하는 것이다 .인터페이스를 한 번 정하고 나서는 추후 수정 소요가 있을 때 수정하는 것이 쉽지 않다. 인터페이스를 기반으로 다른 작업이 이뤄지고 난 후에는 인터페이스를 수정하려면 거의 모든 코드를 뜯어고쳐야 할 수 있다. 매개변수를 DTO 로 정한다. 추후 수정의 소요가 있어도 DTO 가 매개변수라면 매개변수로 입력하는 DTO의 조정으로 해결할 수 있다.
DAO 패턴에서 인터페이스를 이용하는 장점은 사용하는 db가 바뀌어도 그에 맞게 사용할 수 있는 점이다. 사용하려는 Mariadb에 맞도록 DAO 인터페이스를 상속받아서 클래스를 선언한다. 가장먼저 SELECT하는 sql 문을 사용할 수 있는 findAll() 함수를 선언한다. 기존에 사용한 것과 동일한 코드를 사용하여 , db로부터 받은 정보를 입력한 List ls 를 리턴하도록 한다.

기존의 Test474.java 에서 방명록을 작성하는 코드를 dao의 add 함수로 변경했다. pvo 매개변수는 작성하려는 content 를 setter 로 설정하고 매개변수로 사용한다.
그리고 add 함수는 위와 같이 기존의 코드를 그대로 사용하고, pvo 로부터 getter 를 사용해 Content를 sql문에 입력한다.

하이퍼링크를 이용해 작성한 방명록을 삭제하는 Test476.java 파일이다. delByPk 함수로 변경하고, 마찬가지로 no를 setter로 입력한 po 를 매개변수로 입력한다.
그리고 역시 동일한 sql문을 입력하는 함수로 선언하면 DAO Pattern을 이용한 방명록을 만들 수 있다.

profile
2년차 백엔드 개발자, crimy

0개의 댓글