В настоящее время я создаю простое приложение на основе CRUD, и я закончил с основами c, такими как создание формы с заголовком, датой, описанием и т. Д. c, редактирование или удаление сообщения и т. П. c. Так что теперь я пытаюсь добавить функцию загрузки изображений. (Я использую Windows 10 в качестве моей ОС)
В данный момент я изучаю учебное пособие по следующему URL
https://www.callicoder.com/spring-boot-file-upload-download-jpa-hibernate-mysql-database-example/
, и когда я смотрю на раздел
Настройка свойств базы данных и многокомпонентного файла
, в нем объясняются, какие операторы необходимы для настройки базы данных и свойств составного файла, но когда Я добавил образец страницы учебника, это вызвало конфликт.
Ниже показан мой файл application.properties
.
(Строка “## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties”
и после нее - это часть, которую я скопировал и вставил из учебника, а над ней - исходный код перед добавлением учебника)
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.h2.console.enabled=true
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= jdbc:mysql://localhost:3306/file_demo?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= root
spring.datasource.password= callicoder
## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
## Hibernate Logging
logging.level.org.hibernate.SQL= DEBUG
## MULTIPART (MultipartProperties)
# Enable multipart uploads
spring.servlet.multipart.enabled=true
# Threshold after which files are written to disk.
spring.servlet.multipart.file-size-threshold=2KB
# Max file size.
spring.servlet.multipart.max-file-size=200MB
# Max Request Size
spring.servlet.multipart.max-request-size=215MB
Часть Причиной конфликта является следующее.
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.url= jdbc:mysql://localhost:3306/file_demo?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= root
Я предполагаю, что причина конфликта заключается в том, что я пытаюсь использовать базу данных JDB C H2 и JDB C MySQL одновременно. Сначала я думал, что комментирование моей исходной конфигурации, как показано ниже, решит проблему,
#spring.datasource.url=jdbc:h2:mem:test
#spring.datasource.driverClassName=org.h2.Driver
#spring.datasource.username=sa
#spring.h2.console.enabled=true
, но после этого я не смог запустить программу, вероятно, потому что есть часть, где я использую JDB C Templace, как показано ниже.
[ReportDaoImpl.java]
package com.example.demo.repository;
import java.sql.Timestamp;
@Repository
public class ReportDaoImpl implements ReportDao {
private final JdbcTemplate jdbcTemplate;
@Autowired
public ReportDaoImpl(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<Report> findAll() {
String sql = "SELECT report_id, title, threat_level, report_date, description, img_path, "
+ "user.user_id, user_name FROM report "
+ "INNER JOIN user ON report.user_id = user.user_id";
List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql);
……
Мой самый большой вопрос: как я могу интегрировать функцию учебника «Загрузить изображение» в мое базовое c приложение CRUD, не вызывая конфликта в конфигурация?
Должен ли я отказаться от использования базы данных JDB C H2 и шаблона JDB C и использовать что-то еще, совместимое с частью JDB C MySQL, которую я извлекаю из руководства? Другими словами, для того, чтобы интегрировать функцию загрузки изображений из учебного пособия, должен ли я кардинально реструктурировать свой код в файл ReportDaoImpl.java
(и, возможно, даже в другие файлы?), Или будет простой способ разрешения конфликта конфигурации?