Тасклет для удаления таблицы в весеннем пакете - PullRequest
1 голос
/ 20 октября 2011

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

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

Я использую ibatis в качестве ORM

Ответы [ 2 ]

13 голосов
/ 20 октября 2011

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

<!-- 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 голосов
/ 14 декабря 2016

FYI, вместо тасклета вы можете использовать <jdbc:initialize-database>, чтобы указать на скрипт инициализации со всеми вашими 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">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...