[ Model 파트 ] - DAO 버전 UP 하기
DAO를 버전 업 하는 방법에 대해 학습했다.
⇒ “성능 최적화” 를 드러내자
기존의 DAO VS 새로운 DAO
- 기존 DAO
- JDBCUtil이라는 아주 대표적인 공통로직(횡단관심)을 사용함
(JDBCUtil은 ctrl + c, v이므로 모듈화(성능 최적화)를 함)
(4단계(conn, pstmt, 실행, close를 통해 진행함. 이 중 “실행”만 핵심로직이고 나머지 3개가 공통 로직.)
- 새로운 DAO
- “Template 패턴” (MVC, 싱글톤, 팩토리, 템플릿, .. 등등의 패턴 존재)
- 반복적인 로직 OR 복잡한 로직을 모듈화한 클래스
- JDBC Template 클래스를 Spring에서 제공 중이다.
- pom.xml에 dependency 추가
템플릿 사용하여 DAO 구현하기(JDBC)
사용방법
- 라이브러리 추가
<!-- JDBC를 위한 라이브러리 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>6.1.6</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
2. 스프링 컨테이너가 new하려면? applicationContext.xml에서 설정하기! “<bean>”
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="teemo" />
<property name="password" value="1234" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
3. DAO 바꾸기
@Autowired // 의존성 주입(DI)
private JdbcTemplate jdbcTemplate;
public boolean insert(BoardVO vo) {
int result
3-1. DI가 안되면 메서드를 실행할 수 없다. (@Autowired)
3-2. DI 한다고 써놓아도 메모리에 객체가 없으면 실행이 안된다. DI 할 객체를 NEW 해주지 않으면 메서드 실행 불가 (@Bean) (즉, DI할 대상이 있어야 DI도 가능하다는 것)
→ 참고로 해당 클래스 내에서 생성자 주입으로 new 하지말고, applicationContext.xml에서 해야함
3-3. 메서드 실행 주체(클래스)도 NEW를 해줘야 (@Component) 실행 가능
→ 3가지 모두를 new 해줘야만 메서드 실행이 가능하다.
※ DAO에는 @Component 대신 @Repository 달아주면 됨!
'웹 개발' 카테고리의 다른 글
스위트 알럿(Sweet Alert) 사용해서 팝업 광고 띄우기 + 쿠키(Cookie) 사용하기 (0) | 2025.05.05 |
---|---|
서버(Server)와 세션(Session) (0) | 2025.05.04 |
ResponseEntity<T> 클래스 (0) | 2025.04.30 |
관리자 회원 관리 페이지 (0) | 2025.04.28 |
Repository와 Impl (0) | 2025.04.27 |