Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring批处理是否适用于多查询数据读取器_Java_Spring Batch - Fatal编程技术网

Java Spring批处理是否适用于多查询数据读取器

Java Spring批处理是否适用于多查询数据读取器,java,spring-batch,Java,Spring Batch,我正在开发一个需要从数据库读取数据并写入JSON文件的模块。通过以下示例,我将尝试说明该场景 Department schema has two tables 1. States columns- stateId, stateName, cityCount, debt, 2. City columns- cityId, cityName, stateId, completedProjects, runningProjects 需要为每个状态创建单独的JSON文件。 示例JSO

我正在开发一个需要从数据库读取数据并写入JSON文件的模块。通过以下示例,我将尝试说明该场景

Department schema has two tables 
 1. States    columns- stateId, stateName, cityCount, debt, 
 2. City   columns- cityId, cityName, stateId, completedProjects, runningProjects
需要为每个状态创建单独的JSON文件。 示例JSON-Washington.JSON

{
"StateId": id,
"StateName": name,
"debt": debt,
Cities:[{
"cityId":id,
"cityName":Name,
"completedProjects":completedProjects,
"runningProjects":runningProjects
}]
}
为此,我认为我们需要两个查询来获取结果。一个用于从states表获取记录以获取状态详细信息,另一个用于通过循环状态表的结果集从City获取记录

我的经理建议使用Spring Batch进行上述操作。我浏览了一些在线可用的文档和示例应用程序。根据我在Spring Batch Item reader中的理解,我们需要一次读取所有数据。然后我们需要创建一个行映射器来映射记录。写入程序可以使用此行映射器写入文件。我认为这里不可能有单一的查询来获取州和城市数据。我需要使用第一次查询中的州id从第二次查询中获取城市。

我的问题是如何在item reader中读取数据?
另外,我想知道Spring batch是否是当前情况的理想解决方案(考虑到存在多个内部数据,如City,需要单独查询)。
对不起,这篇文章太长了1.我想解释一下当前的情况

  • 使用基于州+城市之间连接的单个查询基ItemReader
  • 使用自定义CompletionPolicy在州之间断开连接;通过这种方式,您将收到一个state+citybean列表,其中state对于列表中的每个项目都是相同的
  • 在自定义ItemWriter.write()中创建JSON文件(这应该很容易)
  • 我的20美分