Как загрузить записи из базы данных с помощью Springboot REST - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в Java, и я создаю ресурс REST API для весенней загрузки, чтобы загрузить заархивированный файл на основе переданного списка идентификаторов. Заархивированный файл должен содержать идентификационные записи из базы данных. База данных Mysql имеет несколько записей с уникальными идентификаторами. Поэтому ресурс, который я создаю, должен возвращать zip-файл с различными идентификаторами, переданными в качестве параметра.

Например:

Таблица базы данных «Сообщение»:

ID | детали сообщения | метка времени| payload | config

1 | Тестовое сообщение | 2019-08-28 16: 00: 25.0003470 |Это тестовая полезная нагрузка | subscriber1: test, subscriber2: test1

2 | Test Message1 | 2019-08-20 12: 46: 40.0007520 |Это тест payload1 | subscriber001: test, subscriber002: test1

Если я передаю только 1 в качестве идентификатора, он должен загружать файл только на локальную машину, а не в zip.

Если я передаю 1и 2 в качестве параметра в URL, он должен возвращать zip-файл с обеими записями.

В настоящее время я создал ресурс, который будет загружать все записи из БД в мой локальный. Я не могу понять, как заставить его загружаться при передаче одного идентификатора и ZIP при передаче нескольких идентификаторов.

Вот фрагмент кода:

Любая помощь будет принята с благодарностью. Спасибо

@GetMapping("/file/save")
    @CrossOrigin(origins = "*")
    public ResponseEntity<byte[]> download() throws Exception {
        List<messageEntity> messageRecord = messageRepository.findAll();
        ObjectMapper objectMapper = new ObjectMapper();
        String xml = objectMapper.writeValueAsString(messageRecord);
        byte[] stringtobytes= xml.getBytes();
        String fileName = "file.xml";
        HttpHeaders respHeaders = new HttpHeaders();
        respHeaders.setContentLength(stringtobytes.length);
        respHeaders.setContentType(MediaType.TEXT_XML);
        respHeaders.setCacheControl("must-revalidate, post-check=0, pre-check=0");
        respHeaders.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);
        return new ResponseEntity<byte[]>(stringtobytes, respHeaders, HttpStatus.OK);
    }

1 Ответ

0 голосов
/ 24 октября 2019

Вы можете сосчитать количество удостоверений личности, которые вы передаете. Если num_IDs = 1, то https://www.daniweb.com/programming/software-development/threads/493294/export-data-from-mysql-db-to-csv-file-using-java

else создайте и загрузите Zip-файл java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...