Как получить соединение MySQL из applicationaiton.properties в весенней загрузке ireport - PullRequest
0 голосов
/ 10 февраля 2020

В настоящее время я использую этот код для генерации ireport. Но мне нужно получить источник данных непосредственно из application.properties, так как я не хочу снова использовать имя пользователя и пароль для соединения sql.

        File file = ResourceUtils.getFile("classpath:report/collectorInvoice.jrxml");
        InputStream input = new FileInputStream(file);

        // Compile the Jasper report from .jrxml to .japser
        JasperReport jasperReport = JasperCompileManager.compileReport(input);

        conn = DriverManager.getConnection("jdbc:mysql://localhost/divron?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","aha","123");

        // Get the parameter
        Map<String, Object> parameters = new HashMap<>();

        parameters.put("invoiceId",id);
        try (Connection connection = dataSource.getConnection()) {

            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);

            // Export the report to a PDF file
            JasperExportManager.exportReportToPdfFile(jasperPrint, "D://" +"collectorInvoice -"+ id + ".pdf");

        }
        return new ResponseEntity<Object>(null, HttpStatus.OK);

Это код, который следует изменить.

        conn = DriverManager.getConnection("jdbc:mysql://localhost/divron?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","aha","123");

Поэтому, пожалуйста, помогите мне получить все данные из соединения sql без использования имени пользователя и пароля пользователя. sql соединение снова.

1 Ответ

0 голосов
/ 10 февраля 2020

Если источник данных уже создан при весенней загрузке, вы можете просто подключить его автоматически в своем компоненте (или использовать другой способ инъекции) и использовать соединение из источника данных

@Autowired
DataSource dataSource;
....
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection());
...