앞서 살펴본 모델1은 데이터 처리로직과 출력로직을 한 페이지에서 처리,해결하는 방식으로,
데이터를 가져올 때마다 매번 DB에 접속하기 때문에 비효율적일 수 있다.
이를 좀 더 효율적으로 구현할 수 있는 방법이 싱글톤 패턴이다.
싱글톤 패턴을 사용하기전에 템플릿을 하나 추가해보자
Window - Preferences - Java - Templates - Import 클릭 - 파일선택 - Apply
싱글톤 패턴 (Singleton pattern)
어플리케이션이 시작될 때 최초 한번만 메모리에 할당하고(static의 개념) 그 메모리에 객체를 만들어서 사용하는 디자인 패턴
DB를 접속할 때처럼 공통된 객체를 여러 개 생성해서 사용하는 경우 많이 사용되는 디자인 패턴
VO (Values Object) : 한 개 또는 그 이상의 속성들을 묶은 객체 (링크참고)
[JSP] VO (Values Object)
VO (Values Object) : 한 개 또는 그 이상의 속성들을 묶은 객체 DB에서 넘어온 행의 정보를 저장하기 위한 클래스 개념 DB를 연동하고 사람의 정보를 DB에서 가져왔다고 가정하면 PersonVO 객체에 담아서
studywithjw.tistory.com
DAO (Data Access Object) : DB접속을 목적으로 하는 클래스
**작성시 DBService(최초1회)-VO-DAO-jsp 파일 순으로 작성하면 편리하다**
1️⃣싱글톤패턴을 이용하여 부서테이블 조회하기
DBService
VO / DAO
JSP
결과는 JDBC_2의 1️⃣과 동일하지만 싱글톤패턴으로 로직을 분리하여 코드의 중복이 줄어들었다는 장점이 있다.
(자바에서 기능과 실행을 분리함으로써 유지보수에 용이한 것과 비슷함)
2️⃣싱글톤패턴을 이용하여 사원테이블 모든 내용 조회하기
DBServer.java파일은 그대로 사용가능 (캡쳐생략)
VO / DAO
JSP
결과
**주의점
DAO 파일에서 입사날짜(49~51행)
vo.setSahire(rs.getString("sahire"));의 결과는 불필요한 시,분,초까지 출력되므로

String s = rs.getString("sahire");
String[] s_date = s.split(" ");
vo.setSahire(s_date[0]); 와 같이 string배열에 담아 띄어쓰기로 구분하고 [0]번째 배열만 출력하면 시,분,초를 없앨 수 있다.
'JSP' 카테고리의 다른 글
[JSP] JDBC_5 (싱글톤 패턴 + VO, DAO + CRUD) (0) | 2023.10.29 |
---|---|
[JSP] JDBC_4 (싱글톤 패턴 + VO, DAO + CRUD) (0) | 2023.10.27 |
[JSP] JDBC_2 (1) | 2023.10.25 |
[JSP] JDBC_1 (0) | 2023.10.23 |
[JSP] jsp파라미터 수신 (0) | 2023.10.20 |