Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > сохранить данные настройки с базой


Автор: slolennnn 1.9.2006, 17:41
Подскажите пожалуйста.
Приложение использует myFaces.
Надо часть данных сачать из базы подсоединившись по JDBC.
То есть на первой странице есть 3 поля - url, login, password.
Заполняя их инициализируем эти 3 переменные и дальше на всех страницах все бины должны иметь к ним доступ.
Я сделал дополнительно ConnectionBean с полями
Код

    public static String dbUrl = "jdbc:mysql://GENOS:3306/godo";
    public static String dbLogin = "adm";
    public static String dbPassword;

 

и методы get/set к ним(? возможно такое?)
и положил его в session scope.
Теперь на первой странице в полях заполняю эти значения
Код

  <h:inputText value="#{connectionBean.url}"/>
  <h:inputText value="#{connectionBean.login}"/>
  <h:inputSecret value="#{connectionBean.password}"/>
  <h:commandButton value="connect" action="nextPage"/>

  

а на следующей странице уже вызывается его коннект
Код

   Connection con = ConnectionBean.getConnection();

 

Можно так вообще делать?

Автор: tux 2.9.2006, 04:12
Первое. Зачем нужны методы get/set если у тебя атрибуты объявлены как public, да еще к тому же и static? К ним ведь любой класс можэет обратиться безо всяких get и set, так зачем это архитектурное излишество?

Второе. В форме заполнять параметры подключения конечно никто не запрещает. Но я вижу хоть какой-то смысл в этом только если параметры соединения будут часто меняться. Ответь для себя на вопрос будет ли это так. Если параметры JDBC в процессе эксплуатации приложения будут неизменными или будут меняться редко, то не вижу смысла вообще их вводить вручную. Да и при частом изменении можно придумать более элегантный способ. Кроме того, я себе с трудом представляю пользователя, который будет вводить кроме имени и пароля еще и URL.

Вообще обчно делают таким образом. Настройки соединения хранят либо атрибутах, объявленных как static final либо в файлах properties или XML. Первый вариант с атрибутами не очень хорош по той причине, что при изменении настроек БД приложение придется перекомпилировать. Второй и третий варианты вполне себе ничего, а с properties проще работать чем с XML, кроме того проперти, как вариант, можно передавать непосредственно в java-машину с помощью ключиков -D. 

В общем если ты создашь файлик database.properties с примерно таким содержанием:
Код

slolennnn.db.url=jdbc:mysql://GENOS:3306/godo
slolennnn.db.user=admin
slolennnn.db.password=ququ

и будешь его читать перед установкой соединения или будешь запускать JVM вот таким образом:
Код

java -Dslolennnn.db.url=jdbc:mysql://GENOS:3306/godo -Dslolennnn.db.user=admin -Dslolennnn.db.password=ququ -jar db.jar

то на мой взгляд будет только лучше. Меняются параметры подключения - меняешь содержимое файлика, запускаешь программулину и все.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)