Чтение свойств базы данных из источника свойств не работает - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу прочитать значения свойств моей базы данных из файла application.property, но не могу.

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

@Configuration
@PropertySource("application.properties")
public class DatabaseUtils {

    @Value("${mysql.drive}")
    private static String MY_SQL_DRIVER;

    @Value("${mysql.url}")
    private static String MY_SQL_URL;

    @Value("${mysql.username}")
    private static String DATABASE_USERNAME;

    @Value("${mysql.password}")
    private static String DATABASE_PASSWORD;

    public DatabaseUtils () {

    }

    @Bean
     public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() {
      return new PropertySourcesPlaceholderConfigurer();
     }

    public static ResultSet executeDBQuery(String query) {
        try {

            Class.forName(MY_SQL_DRIVER);
            Connection connection = DriverManager.getConnection(MY_SQL_URL, DATABASE_USERNAME, DATABASE_PASSWORD);

            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(query);
            return resultSet;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

    }
}


(properties file)
# database
databaseDriver=com.mysql.jdbc.Driver
databaseUrl=jdbc:mysql://localhost:3306/school
databaseUsername=root
databasePassword=root

I am new to spring-boot so getting a little confused as to why its not working, read a lot of online sources and tried them but didnt work, not sure what I am missing. Any help will be appreciated.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Свойства в вашем файле свойств отличаются от того, что вы даете в @ Value.for, например.ключом вашего свойства является databaseDriver, но вы даете mysql.drive в своем коде.

 @Value("${mysql.drive}")
 private static String MY_SQL_DRIVER;

Но это должно быть

@Value("${databaseDriver}")
 private static String MY_SQL_DRIVER;
0 голосов
/ 20 сентября 2019

В основном, какие свойства вы определяете в файле свойств, должны быть указаны в праве приложения.Здесь вы определяете свойство как databaseDriver.

   databaseDriver=com.mysql.jdbc.Driver

Тогда в коде также вы должны запросить "databaseDriver"

 @Value("${databaseDriver}")
  private static String MY_SQL_DRIVER;
...