当前位置: 首页 > 面试题库 >

Tasklet在Spring Batch中删除表

慕容越泽
2023-03-14
问题内容

我在批处理作业中有执行不同操作的步骤。

但是在开始所有这些步骤之前,我需要清除一个表。有没有简单的方法可以编写Tasklet来直接从Job xml文件中删除表?

我正在使用ibatis作为ORM


问题答案:

您的意思甚至比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;
}
}


 类似资料:
  • 问题内容: 我需要一个tasklet,将所有文件存储在arraylist目录中。列表的大小存储在作业执行上下文中。稍后,可以在另一个步骤中从另一个Tasklet访问此计数。它是如何做到的。我试图将其存储在jobexecution上下文中,在运行时抛出无法修改的集合异常, 还在步骤注释中存储了步骤执行参考。仍然无法实现。请让我知道如何在两个小任务之间共享数据。 问题答案: 你至少有4种可能性: 使用

  • 用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并

  • Tasklet是一个简单的任务管理框架,主要用于将一个大任务分割成许多较小的子任务,并管理这些子任务的执行。Tasklet主要有以下4个类: Task : 任务/子任务,多个Task组成一个完整的任务/功能。 Manager : 任务/子任务的执行入口。通过内部维护一个Task容器来管理要运行的Task。 Context : 为子任务提供运行环境的上下文消息和服务。 Launcher: 启动一个完

  • 问题内容: 在文档(http://dev.mysql.com/doc/refman/6.0/en/drop- table.html )中未明确提及。我问是因为我刚刚在Rails项目中看到了一个奇怪的数据库迁移,其中开发人员在删除表之前删除了所有索引,这似乎是不必要的。 问题答案: 是的,它确实。 但是,如果您具有诸如RESTRICT之类的外键约束来确保与其他表的参照完整性,则需要在删除或截断表之前

  • 主要内容:面向读者,前提条件,问题反馈Spring Batch是一个轻量级框架,用于在开发企业应用程序中批处理应用程序。 本教程解释了Spring Batch的基本概念,并展示了如何在实际环境中使用它。 面向读者 本教程对于那些需要处理大量涉及诸如事务管理,作业处理统计,资源管理等重复操作的记录的专业人员来说尤其有用。Spring Batch是处理大容量的非常有效的框架 批量作业。 前提条件 Spring Batch建立在Spring

  • 我想用3个步骤建立一个批次。我想配置这个步骤,就像如果有100条记录,当step1读取、处理和写入一个10块时,step02,然后step03开始和结束,然后再次返回step1,读取下一个块。这在Spring批量可能吗?