Тасклет для удаления таблицы в весеннем пакете

1

У меня есть шаги в пакетном задании, которое делает разные вещи.

Но прежде чем я начну все эти шаги, мне нужно очистить таблицу. Есть ли простой способ написать тасклет, который удалит таблицу непосредственно из файла задания xml?

Я использую ibatis как ORM

Теги:
spring
spring-batch
ibatis

2 ответа

10
Лучший ответ

вы имеете в виду еще более простой, чем тасклет, т.е. как этот псевдокод?

<!-- 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;
}
}
  • 0
    Я сделал это ... только если бы я мог прочитать вопрос, прежде чем я ответил бы сначала Майкл :) :) :) :)
  • 0
    Не могли бы вы добавить лучший способ убедиться, что это запускается только один раз в начале работы?
Показать ещё 2 комментария
0

FYI. Вместо трюка вы можете использовать <jdbc:initialize-database> для указания на инициализацию script со всеми вашими SQL-запросами, используемыми для инициализации db. Таким образом, запросы будут легче поддерживать.

<!-- 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">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню