2013년 4월 11일 목요일

[Sping] Spring DB연동

스프링에는 데이터를 얻거나 객체와의 연동을 할 때 꼭 한가지 방법만 존재하는 것은 아니다. DB와의 연동도 마찬가지도 여기서는 jndi네이밍방식으로 DataSource를 구한다음 JdbcTemplet을 객체를 이용하여 DB를 연동해보도록 하겠다.


DataSource를 가져오기위해 우선 server에서 server.xml 설정파일에 DB를 연동하고자 하는 어플리케이션 context에 다음과 같은 코드를 넣어주어야한다.

<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/oracle" password="1234" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:XE" username="board"/>


<!-- DB Setting -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/oracle"></property>
<property name="resourceRef" value="true"></property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>

위에보면 빈 객체가 두개 있는 것을 알 수 있는데 처음에 필요한 객체는 dataSource객체이다. JndiObjectFactoryBean클래스로 만들어진 객체로써 속성으로 jndiName과 resourceRef가 있는데 jndiName에는 자신이 사용하고 있는 데이터베이스의 이름이고 resourceRef는 true로 값을 지정해주어야한다.

이렇게 하여 JdbcTemplate 객체를 얻을 수 있는데 이 객체를 이용하여 DB에 SQL문을 실행할 수 있게 된다. 그러므로 당연히 DB와의 연동이 필요한 Dao클래스에 JdbcTemplate 객체를 bean을 통해 의존 관계를 설정해 주어야겠다.

그리고 마지막으로 Dao를 직접적으로 호출할 Controller에도 dao 객체를 넣어주는 것을 잊지말자!


댓글 없음:

댓글 쓰기