복붙노트

[SPRING] 스프링 배치에서 테이블을 삭제하는 태스크 릿

SPRING

스프링 배치에서 테이블을 삭제하는 태스크 릿

배치 작업에서 다른 일을하는 단계가 있습니다.

그러나이 모든 단계를 시작하기 전에 표를 정리해야합니다. 작업 XML 파일에서 테이블을 직접 삭제하는 태스크 릿을 작성하는 간단한 방법이 있습니까?

ORM으로 ibatis를 사용하고 있습니다.

해결법

  1. ==============================

    1.tasklet보다 훨씬 간단합니다. 이 의사 코드를 좋아합니까?

    tasklet보다 훨씬 간단합니다. 이 의사 코드를 좋아합니까?

    <!-- xml bean config -->
    <bean id="deleteTableTaskletStep" class="...">
       <property name="dataSource" ref="dataSource" />
       <property name="sql" value="delete from ..." />
    </bean>
    
    // java code
    public class DeleteTableTasklet implements Tasklet {
    
    @Override
    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
        new JdbcTemplate(this.dataSource).executeQuery(this.sql)
        return RepeatStatus.FINISHED;
    }
    }
    
  2. ==============================

    2.참고로, 태스크 렛 대신에 를 사용하여 db 초기화에 사용되는 모든 SQL 쿼리로 초기화 스크립트를 지정할 수 있습니다. 그렇게하면 쿼리를 유지 관리하기가 더 쉬워집니다.

    참고로, 태스크 렛 대신에 를 사용하여 db 초기화에 사용되는 모든 SQL 쿼리로 초기화 스크립트를 지정할 수 있습니다. 그렇게하면 쿼리를 유지 관리하기가 더 쉬워집니다.

    <!-- xml bean config -->
    <jdbc:initialize-database data-source="dataSource">
           <jdbc:script location="file:C:/db/initial-query.sql" />
    </jdbc:initialize-database>
    

    꼭대기에 이것을 포함 시켜라.

    <beans xmlns="http://www.springframework.org/schema/beans"
           ...
           xmlns:jdbc="http://www.springframework.org/schema/jdbc"
           xsi:schemaLocation="...
               http://www.springframework.org/schema/jdbc
               http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd">
    
  3. from https://stackoverflow.com/questions/7834304/tasklet-to-delete-a-table-in-spring-batch by cc-by-sa and MIT license