У меня есть задание создать приложение 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
Harsha 12 Мар 2012 в 20:16

3 ответа

Лучший ответ

Для меня это похоже на упражнение по разработке программы :)

Во-первых, вам нужно написать код, который может обрабатывать сохранение объекта Java Properties на диск и извлечение Properties с диска. Вы можете сделать это разными способами, но лучше всего использовать синтаксис свойств Java для сохранения содержимого объекта Properties в текстовый файл, доступный для редактирования пользователем. Ваш синтаксический анализатор просто должен быть достаточно умен, чтобы понять, как читать текст из файла обратно в объект Properties, но на самом деле это не так сложно сделать.

Как только ваша программа сможет правильно читать / записывать синтаксис свойств Java из файлов, вы можете написать свой пользовательский интерфейс для работы только с экземплярами объектов Properties. Пользовательский интерфейс может указывать вашим объектам / методам сохранения состояния сохранять экземпляр Properties каждый раз, когда пользователь изменяет поле или значение.

Суть в том, что очень важно понять, как разбить эту программу на более мелкие части. Вы могли бы так же легко написать кучу монолитного кода, который напрямую сохраняет ваши файлы свойств из ActionListeners в Swing, но ни один из этих кодов нельзя будет использовать повторно. Разбейте код на более мелкие объекты (объект Parser, объект пользовательского интерфейса), затем сосредоточьтесь только на этих более мелких частях, по одной, пока вы не сможете заставить их всех работать вместе для достижения вашей цели.

4
CodeBlind 12 Мар 2012 в 16:50

Вы не читаете / не пишете Properties через приложение Swing. Вы просто читаете / записываете Properties, как если бы это было в любом приложении Java (и что задокументировано в классе javadoc в Properties класс)

После того, как вы прочитали файл .properties в объект Properties, вы можете создать пользовательский интерфейс для настройки этого экземпляра Properties. Например, когда запись представляет логическое значение, вы можете использовать флажок в пользовательском интерфейсе и обновлять экземпляр Properties, когда пользователь переключает выбранное состояние флажка.

3
Robin 12 Мар 2012 в 16:24

http://www.java-tips.org/java-se-tips/java.util/how-to-read-and-write-a-properties-file.html или файл свойств загрузки Google в java.

Фактически, чтение файла свойств будет выполняться одним из ваших методов. Так что это совсем не зависит от Swing. Просто прочтите / загрузите данные свойства в любой из ваших коллекций, а затем выполните любые методы Swing или компоненты Swing, чтобы получить их и отобразить.

2
Abhishek Choudhary 12 Мар 2012 в 16:55