`Свойства` все еще используется для загрузки конфигурации JDBC из файла? - PullRequest
0 голосов
/ 13 июня 2018

Я слышал, что Properties является устаревшим в Java.

Properties все еще используется для загрузки конфигурации JDBC из файла , как в старый ответ ?

Без Properties, как мы можем сделать то же самое?Обычные функции чтения файлов и синтаксический анализ файлов вручную?

Вы можете сохранить файл db.properties во внешнем фиксированном месте и получить к нему доступ для последующего получения свойств подключения:

Properties props = new Properties();
FileInputStream in = new FileInputStream("/external/configuration/dir/db.properties");
props.load(in);
in.close();

String driver = props.getProperty("jdbc.driver");
if (driver != null) {
    Class.forName(driver) ;
}

String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");

Connection con = DriverManager.getConnection(url, username, password);

Затем в каждой среде вы можете иметь свою копию настроек базы данных без необходимости изменять файл приложения (JAR, ER или любой другой).

Пример файла свойств подключения к базе данных:

# Oracle DB properties
#jdbc.driver=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@localhost:1571:MyDbSID
#jdbc.username=root
#jdbc.password=admin

# MySQL DB properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDbName
jdbc.username=root
jdbc.password=admin

1 Ответ

0 голосов
/ 13 июня 2018

Да.По крайней мере, в моей организации многие конфигурации (не только базы данных conf) все еще загружаются из файлов свойств, что совершенно нормально и работает хорошо.Я думаю, что это только унаследовано в том смысле, что как контейнер класс Properties появился до введения Java Collections Framework, как Vector и Hashtable.

С другой стороны, альтернативыкак YAML и JSON становятся все более популярными.Возможно, потому что это может стать повторяющимся описанием объекта с полями в файле свойств.

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDbName
jdbc.username=root
jdbc.password=admin

Хотя та же конфигурация в YAML будет более краткой и удобочитаемой (?).

jdbc:
  driver: "com.mysql.jdbc.Driver"
  url: "mysql://localhost:3306/MyDB"
  username: "root"
  password: ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...