javaspringibatisspring-batch

Tasklet to delete a table in spring batch


I have steps in the batch job that does different things.

But before I begin all these steps, I need to clear a table. Is there any simple way to write a tasklet that will delete the table directly from the job xml file ?

I am using ibatis as ORM


Solution

  • you mean even more simple than a tasklet, e.g. like this pseudocode ?

    <!-- 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;
    }
    }