Я использовал настоящую простую базу данных H2 для файла.У меня была такая настройка:
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:"+dbFileName);
Statement stat = conn.createStatement();
, и при запуске приложения я просто делал бы:
File dbFile = new File("~/mydb.db");
if(!dbFile.exists()) {
String sql = -create my table here, etc...
}
Но сейчас я пытаюсь сделать это в «правильном» Spring Bootпуть.Итак, у меня есть файл application.properties, который содержит это:
# H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.datasource.url=jdbc:h2:file:~/mydb.db
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
И я пытаюсь использовать способ JdbcTemplate / Dao.Но мне нужно проверить, есть ли БД при запуске.Поэтому я хочу сделать свою предыдущую проверку в прослушивателе событий классов приложения для ApplicationReadyEvent.Но как мне получить ссылку на URL источника данных?У меня было свойство конфигурации ранее, и он был автоматически загружен, и я все еще мог это сделать, но это было бы в некоторых местах, и это было бы плохо.
Итак, каков эссеистический / правильный способ убедиться, что этот файл БД присутствует при запуске приложения.(и я хочу это способом JDBC, пожалуйста, без JPA)