2013년 8월 7일 수요일

Spring Batch JDBC - deleting table

JDBC를 통해 mysql에 있는 table의 내용을 지우는 작업을 만들었다.

먼저 custom tasklet을 빈으로 선언
  <bean id="jdbcCleanUp"
  class="my.mysql.JdbcCleanUp">
  <property name="dataSource" ref="dataSource"/>
  </bean>
----------------------------------------------------------------------------------------------------------------------
배치 작업을 설정
<batch:job id="cleanUp">
<batch:step id="cleanning">
<batch:tasklet ref="jdbcCleanUp" />
</batch:step>
</batch:job>
----------------------------------------------------------------------------------------------------------------------
custom tasklet을 작성
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class JdbcCleanUp extends JdbcDaoSupport implements Tasklet{

@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
// TODO Auto-generated method stub
delete();
return null;
}
public void delete() {
String[] sql = {"delete from AD_CNT_TB","delete from UNIT_CNT_TB",
"delete from OS_CNT_TB","delete from LOCATION_CNT_TB",
"delete from GENDER_CNT_TB","delete from AGE_CNT_TB"};
   getJdbcTemplate().batchUpdate(sql);
}
}

참고:http://www.java2s.com/Code/Java/Spring/UseJdbcTemplateToExecuteDeleteStatementWithParameter.htm

댓글 없음:

댓글 쓰기