Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2015, 18:07   #1
mmx358
Пользователь
 
Регистрация: 28.06.2009
Сообщений: 84
По умолчанию Java EE: автоматический выбор параметров БД

Добрый день (или вечер уже)!

Пишу простенький веб-проект на Java EE (Servlets + JSP) и БД MySQL. Проблема следующая: пока я разрабатываю приложение на своем компьютере, я использую localhost для доступа к БД. А если я хочу зашвырнуть проект на OpenShift, то там как минимум этот параметр будет иным. Кажется, я нашел, как подключиться к БД в OpenShift, могу подключиться к БД на своей машине, НО! Возможно ли сделать так, чтобы приложение могло понять, "где" оно находится и выбрать соответствующие параметры для подключения к БД?

Мне кажется, вот этот код, найденный мною здесь, наиболее близок к решению моей проблемы:
Код:
{
    if (connection != null) return connection;

    try
    {
        Properties dbProperties = new Properties();
        InputStream input = DatabaseUtil.class.getClassLoader().getResourceAsStream(DB_PROPERTIES_FILE);
        dbProperties.load(input);
        String url = "";
        if (appIsDeployed)
        {
        String host = System.getenv("OPENSHIFT_MYSQL_DB_HOST");
        String port = System.getenv("OPENSHIFT_MYSQL_DB_PORT");
        String name = "burgerjoint";
        url = "jdbc:mysql://" + host + ":" + port + "/" + name;
        } else
        {
        url = dbProperties.getProperty(PARAM_URL);
        }
        String driver = dbProperties.getProperty(PARAM_DRIVER);
        String username = dbProperties.getProperty(PARAM_USERNAME);
        String password = dbProperties.getProperty(PARAM_PASSWORD);

        Class.forName(driver);
        connection = DriverManager.getConnection(url, username, password);
Однако вопрос: а что это за переменная appIsDeployed? В гугле я такого не нашел, т.е., выходит, что это просто какая-то переменная типа boolean, кот. автор кода использует для выбора подключения. Но каким образом она получает значение? Жестко запрограммировано или все же каким-то образом можно получить информацию о том, в какой "среде" работает приложение?

Если это все бред сивой кобылы, тогда спрошу так: а как это происходит в реальности? Если команда занимается одним проектом, он ведь находится на сервере. Как тогда с ним работают? Да, да, git, все дела, но как можно проверить работоспособность приложения локально, на компьютере, в котором в данный момент необходимо запустить приложение и проверить его работоспособность, если параметры для БД предназначены для БД сервера?

Мне, выходит, надо каждый раз, как я завершил работу над проектом, изменять в нем значение того же, например, флага appIsDeployed вручную и только после этого синхронизировать с сервером?
mmx358 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический выбор из списка значений combobox при ручном вводе с клавиатуры Настя Белова Microsoft Office Excel 3 14.05.2014 17:35
Автоматический выбор ItemIndex в ComboBox Kib Общие вопросы Delphi 8 01.06.2011 19:06
dblookupcombobox автоматический выбор Регинка-малинка БД в Delphi 1 13.11.2010 18:00
Автоматический выбор платы для телевизора AlexProgrammers Microsoft Office Excel 2 19.10.2010 15:40
Автоматический подбор оптимальных параметров в массиве(Необходима помощь) ZOV Помощь студентам 3 07.03.2009 17:41