У меня есть задание создать приложение Java Swing для работы с базой данных mysql, я планировал установить свойства подключения к базе данных в файле .properties. В этом приложении пользователь должен иметь возможность изменять свойства базы данных через приложение. У меня проблема в том, как читать и записывать файл свойств через приложение Swing.
try {
Properties prop = new Properties();
//reading properties
FileInputStream in = new FileInputStream("conf/properties.xml");
prop.loadFromXML(in);
System.out.println(prop.getProperty("driver"));
in.close();
//Writing properties
FileOutputStream out = new FileOutputStream("conf/properties.xml");
prop.setProperty("username", "root");
prop.storeToXML(out, "rhym");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
Xml файл ..
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>database configuration</comment>
<entry key="driver">com.mysql.jdbc.Driver</entry>
<entry key="ip">127.0.0.1</entry>
<entry key="port">3306</entry>
<entry key="database">ofm_mnu_jvs</entry>
<entry key="username">user1</entry>
<entry key="password">123789</entry>
</properties>
3 ответа
Для меня это похоже на упражнение по разработке программы :)
Во-первых, вам нужно написать код, который может обрабатывать сохранение объекта Java Properties
на диск и извлечение Properties
с диска. Вы можете сделать это разными способами, но лучше всего использовать синтаксис свойств Java для сохранения содержимого объекта Properties
в текстовый файл, доступный для редактирования пользователем. Ваш синтаксический анализатор просто должен быть достаточно умен, чтобы понять, как читать текст из файла обратно в объект Properties
, но на самом деле это не так сложно сделать.
Как только ваша программа сможет правильно читать / записывать синтаксис свойств Java из файлов, вы можете написать свой пользовательский интерфейс для работы только с экземплярами объектов Properties
. Пользовательский интерфейс может указывать вашим объектам / методам сохранения состояния сохранять экземпляр Properties
каждый раз, когда пользователь изменяет поле или значение.
Суть в том, что очень важно понять, как разбить эту программу на более мелкие части. Вы могли бы так же легко написать кучу монолитного кода, который напрямую сохраняет ваши файлы свойств из ActionListeners в Swing, но ни один из этих кодов нельзя будет использовать повторно. Разбейте код на более мелкие объекты (объект Parser, объект пользовательского интерфейса), затем сосредоточьтесь только на этих более мелких частях, по одной, пока вы не сможете заставить их всех работать вместе для достижения вашей цели.
Вы не читаете / не пишете Properties
через приложение Swing. Вы просто читаете / записываете Properties
, как если бы это было в любом приложении Java (и что задокументировано в классе javadoc в Properties
класс)
После того, как вы прочитали файл .properties в объект Properties
, вы можете создать пользовательский интерфейс для настройки этого экземпляра Properties
. Например, когда запись представляет логическое значение, вы можете использовать флажок в пользовательском интерфейсе и обновлять экземпляр Properties
, когда пользователь переключает выбранное состояние флажка.
http://www.java-tips.org/java-se-tips/java.util/how-to-read-and-write-a-properties-file.html или файл свойств загрузки Google в java.
Фактически, чтение файла свойств будет выполняться одним из ваших методов. Так что это совсем не зависит от Swing. Просто прочтите / загрузите данные свойства в любой из ваших коллекций, а затем выполните любые методы Swing или компоненты Swing, чтобы получить их и отобразить.
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].