반응형
01. DB에 접근하는 Connection 객체를 이용하기 위해서는??
step1. 관련 라이브러리들 프로젝트에 빌드처리
- Oracle Driver 관련 라이브러리 프로젝트에 빌드처리
- 우리가 그동안 사용했던 Oracle서버를 이용하기 위해 필요, 그 중 ojbc11 이 필요
- DataSource 관련 라이브러리 프로젝트에 빌드처리
- 다수의 Connection 객체를 미리 생성해서 저장해주는 DataSource 객체가 필요함
- 우리는 Spring 이 제공해주는 DataSource 객체 이용할 것임
- 따라서 스프링 프레임워크와 버전 동일하게 이용해야함!!!!
step2. DataSource 객체 등록
[08_dao.xml]
- 개발자가 만드는 것이 아닌 객체 자체를 무조건 Spring Contatiner가 다 만들어줌
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="<http://www.springframework.org/schema/beans>"
xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"
xsi:schemaLocation="<http://www.springframework.org/schema/beans> <http://www.springframework.org/schema/beans/spring-beans.xsd>">
<!-- Spring Framework의 Spring-jdbc 라이브러리의 DriverManagerDataSource 클래스를 Spring Bean으로 등록 -->
<!-- => DBCP(DataBase ConnectionPool) 기능을 제공하는 DataSource 객체 생성 -->
<!-- => DataSource 객체 필드에 Connection 객체를 생성하기 위한 값을 전달하여 저장 - Setter Injection -->
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
</beans>
step3. DataSource 객체 이용해 Connection 객체 달라고 하기
[DataSourceApp.java]
package xyz.itwill8.dao;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//DataSource 객체 : 다수의 Connection 객체를 미리 생성해서 저장하기
//위한 객체 - DBCP(DataBase Connection Pool)
// => Spring Bean Configuration File에서 DataSource 인터페이스를 상속받은 자식 클래스를
//Spring Bean으로 등록하여 사용
//=> DataSource 인터페이스를 상속받은 자식 클래스는 Apache 그룹에서 제공하는 라이브러리(commons-dbcp2)의 클래스
//또는 Spring Framework 그룹에서 제공하는 라이브러리(spring-jdbc)의 클래스를 사용
//=> DataSource 관련 라이브러리 외에 Oracle Driver 관련 라이브러리(ojdbc11)도 프로젝트에 빌드 처리 - pom.xml 파일 변경
public class DataSourceApp {
public static void main(String[] args) throws SQLException {
ApplicationContext context = new ClassPathXmlApplicationContext("08_dao.xml");
DataSource dataSource = context.getBean("dataSource",DataSource.class);
System.out.println("======================================================");
System.out.println("dataSource = "+dataSource);
Connection connection = dataSource.getConnection();
System.out.println("connection = "+connection);
connection.close();
System.out.println("======================================================");
((ClassPathXmlApplicationContext)context).close();
}
}
반응형
'framework > spring DAO' 카테고리의 다른 글
[SpringDAO] 2. Spring에서 SpringDAO 사용하는법 (0) | 2024.08.01 |
---|