JSP

[JSP] JDBC_3 (싱글톤 패턴 + VO, DAO)

(งᐛ)ว 2023. 10. 26. 01:01
728x90

앞서 살펴본 모델1은 데이터 처리로직과 출력로직을 한 페이지에서 처리,해결하는 방식으로,

데이터를 가져올 때마다 매번 DB에 접속하기 때문에 비효율적일 수 있다. 

이를 좀 더 효율적으로 구현할 수 있는 방법이 싱글톤 패턴이다. 

 

싱글톤 패턴을 사용하기전에 템플릿을 하나 추가해보자 

Window - Preferences - Java - Templates - Import 클릭 -  파일선택 - Apply

jdbc_templ.xml
0.00MB


 

싱글톤 패턴 (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]번째 배열만 출력하면 시,분,초를 없앨 수 있다.

728x90

'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