Spring framework 을 Web Application 에서만 사용하다가 이번에 java application 에 적용해
보았다. 보통 JDBC 템플릿 클래스를 만들어서 사용하곤 했는데 Spring framework 에서
제공하는 클래스를 사용하면 트랜젝션부터 간단하고 편리한 기능을 사용할수 있어서
더 좋았다.
아래의 예제는 JDBC Template 배치로 업데이트 하는 예제이다.
이 예제에서는 Spring framework 에서 제공하는 JdbcTemplate Class 의 메소드
batchUpdate() 사용법에 대한 언급을 할것이다. 이 배치업데이트 메소드는 단일 JDBC 연결
상태에서 여러가지 쿼리를 한꺼번에 실행할수 있는 기능을 제공한다.
context.xml : 환경설정파일
<?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-2.0.xsd">
<!-- JDBC 연결하는 부분 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="maxIdle" value="1"/>
<property name="maxActive" value="5"/>
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/>
<property name="username" value="gon"/>
<property name="password" value="1111"/>
</bean>
</beans>
Main.java : 실행소스
소스에 대한 설명은 다음과 같다.
ApplicationContext ac = new ClassPathXmlApplicationContext(“context.xml”);
ApplicationContext 는 Bean factory 함수를 통해 컴퍼넌트 객체를 얻기 위한 인터페이스이다.
context.xml 에 설정된값들로 객체를 생성한다.
DataSource source = (DataSource) ac.getBean(“dataSource”);
데이터소스는 물리적인 데이터 소스를 연결하기 위한 방법을 제공하는 인터페이스이다.
이 소스에서 xml 문서에 설정했던 bean 객체인 dataSource 레퍼런스를 리턴한다.
jt.batchUpdate(new String[]{“update employee set department=’ddsd’”, “delete from
employee where Employeeid=’11’”}
JdbcTemplage 에서 제공하는 batchUpdate 함수를 사용하여 여러 개의 SQL 쿼리를
실행할수 있다. 이 함수는 단일 JDBC 연결상태에서 여러 개의 SQL 문을 동시에
Update 할수 있어서 간단하게 트랜젝션이 가능하고 복잡합을 줄여준다.
import javax.sql.DataSource;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
public class Main {
public static void main(String[] args) {
try {
ApplicationContext ac = new
ClassPathXmlApplicationContext("context.xml");
DataSource source = (DataSource) ac.getBean("dataSource");
JdbcTemplate jt = new JdbcTemplate(source);
jt.batchUpdate(new String[]{"update employee set department='111'",
"delete from employee where employid='1'"});
} catch (BeansException e) {
e.printStackTrace();
} catch (DataAccessException e) {
e.printStackTrace();
}
}
}
'자바(JAVA)' 카테고리의 다른 글
(3) HSQLDB 과 Spring Framework - eclipse 의 DB Explorer 를 통한 데이타확인 (0) | 2009.09.05 |
---|---|
(2) HSQLDB 과 Spring Framework - eclipse 와 Ant 를 이용한 테이블 생성,입력 (0) | 2009.09.05 |
(1) HSQLDB 과 Spring Framework - hsqldb 시작과 테이블 생성 (2) | 2009.09.05 |
The public type [class name] must be defined in its own file 에러 (0) | 2009.08.21 |
weblogic 9.2 에서 도메인(domain) 만들기 (0) | 2009.08.02 |
java Stream 입출력 관련 정리 (0) | 2009.08.02 |
web application 에서 ftp 파일을 Client 브라우저에 전송 (0) | 2009.08.02 |
java application 에서 ApplicationContext load 하기 (0) | 2009.07.30 |