【问题标题】:How to update huge data in database using Spring Boot Batch Job如何使用 Spring Boot Batch Job 更新数据库中的大量数据
【发布时间】:2019-06-15 18:22:07
【问题描述】:

我想更新庞大的用户数据库。

以下是包含 20k 个用户记录的表格格式。

我有一张 excel 表,其中包含以下新数据。此数据并非特定于用户。这是所有用户共有的主数据。

任务是从表中读取用户特定数据,然后在更新同一张表中的新数据后,从对应于旧数据的 Excel 表中读取新数据 为该用户。

例如——

  • 第 1 步 - 从数据库中读取数据(use_id、node_id 和 kmap_type) user_id 95961800
  • 第 2 步 - 从对应数据库的 excel 中读取新值 node_id(9908) 是 7707,1000,7707
  • 第 3 步 - 在同一个表中为同一个用户更新这些新值 KMAP_TYPE 分别为 SUBINDUSTRY、FUNCTION 和 ROLE。

我正在考虑为此使用 Spring Boot 批处理服务。因为我在java和spring boot技术方面的知识一般

谁能建议我在这里应该如何进行?

提前致谢。

【问题讨论】:

    标签: java spring-boot spring-batch spring-batch-excel


    【解决方案1】:

    我不知道这样的工作是否有任何 Spring 功能。

    我会做的是:

    1) 使用 Apache POI 库,让我们轻松处理 Excel 文件。

    2) 读取 Excel 文件中的每个值(如果我理解你所说的话,那应该是一个新值)

    3) 用新值更新数据库值

    下面是 Apache POI 的代码示例:您在 src/test/resources/Excel 文件夹中获取一个 Excel 文件(例如)并将其存储在“工作簿”对象中。

    @Test
    public void FindExistingExcelFileTest() {
        System.out.println("\n----- FindExistingExcelFile -----");
        String pathExcel = "src/test/resources/Excel/";
        String fileName = "yourExcelFileHere.xlsx";
        File fileExcel = new File(pathExcel + fileName);    
        try {
            InputStream inp = new FileInputStream(fileExcel);
            Workbook wb = WorkbookFactory.create(inp);
            Sheet sheet1 = wb.getSheetAt(0);
            System.out.println("Sheet name = " + sheet1.getSheetName());
            Assert.assertNotNull(sheet1);
            wb.close();
        } catch (IOException | InvalidFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    

    然后您可以使用“Row”或“Cell”对象处理您的数据。

    试试这个,然后回到这里了解更多详情。

    【讨论】:

    • 不想读取excel文件然后更新数据库。想先从表中读取数据,然后在更新数据库表后从excel文件中验证。
    • 它正在工作。解决方案 - 1.首先读取excel文件并存储在缓存中 2.读取数据库 3.使用缓存验证数据并根据验证更新数据库。
    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 2020-03-08
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2017-02-16
    相关资源
    最近更新 更多