【问题标题】:Spring Batch how to write a MapSpring Batch如何写一个Map
【发布时间】:2017-10-24 01:14:55
【问题描述】:

我已经看过很多教程和弹簧材料,但我只找到了在 ItemWriter 中包含一个简单对象的示例。

例如...

    @Bean
    JdbcBatchItemWriter<Student> writer = new JdbcBatchItemWriter<>();
    writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<Student>());
    writer.setItemPreparedStatementSetter(new ItemPreparedStatementSetter<Student>(){
        @Override
        public void setValues(Student student, PreparedStatement ps) throws SQLException {
            ps.setLong(1,student.getStudentCode());
            ps.setObject(2,student.getStudentGrade());
        }});
    writer.setSql(QUERY_STUDENT_GRADE_INSERT);
    writer.setDataSource(dataSource);
    return writer;  

在我的实际场景中,我必须编写一个包含键和值的 Map:

Map<KeyObject,Long>

但我不知道如何编写能够插入我在地图中收到的所有内容的代码。

还有一个问题……

当我处理一定数量的项目时,我需要将此数据存储在数据库中,但以前的内容仍保留在我的集合中,那样...我如何在写入后清理地图内容?

【问题讨论】:

  • "必须写一张地图" ...为了家庭作业?对不起,投反对票,因为你的(第一个)问题不清楚......关于你的第二个问题:Map.clear()应该这样做。
  • 我想用 Map 替换 Student 类
  • ...为此,将Student 的出现替换为Map&lt;KeyObject, Long&gt; 就足够了(在上面的代码中......)......并且在方法内部你必须替换getStudentXXX()通过“地图之外”的东西。

标签: java spring spring-batch


【解决方案1】:

解决方案是将我的地图替换为列表

我只是使用 lambda 过滤列表中的对象,并通过通用 itemWriter 写入它们。

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2021-07-01
    • 2019-08-01
    • 2023-03-25
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多