Please Enable JavaScript!
Gon[ Enable JavaScript ]

Spring 을 java Application 에서 사용하기

자바(JAVA)
반응형

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();

      }

   }

}


반응형
Posted by 녹두장군1
,