Как работают свойства JDBC URL - PullRequest
0 голосов
/ 27 января 2011

В моей архитектуре приложения один URL-адрес указывает на один источник данных компании.Поэтому для решения проблемы наличия нескольких компаний в одной базе данных я хочу изучить возможность добавления дополнительного параметра в URL JDBC.

В основном я хочу установить соединение со следующим URL.

jdbc: sqlserver: //192.168.128.2: 1433; databaseName = enterprisesDB; companyId = 25

У меня есть тест, который не влияет на соединениедобавив этот пользовательский параметр в URL-адрес jdbc.Но мой вопрос - как мне получить доступ к свойству companyId в моем приложении?

Можно ли получить значение этого свойства, используя объект Connection, полученный из источника данных?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2011

Я собираюсь опубликовать, как я решаю это.Но я все еще чувствую, что должно быть гораздо лучшее решение, которое будет работать независимо от фактической базы данных, так как URL-адрес Mysql Jdbc разделяет их параметры как URL-адрес http, а драйвер JDBC для SQL Server ожидает, что свойства будут разделены с помощью;персонаж.Ведь именно поэтому JDBC вообще существует.

Используя регулярное выражение, примененное к URL, я получаю следующий параметр:

        String url = company.getJdbcUrl();

        Pattern p = Pattern.compile("companyId=(\\d+)");
        Matcher m = p.matcher(url);

        if (m.find()) {
            companyId = m.group(1);
            _logger.info("companyId found");
        } else {
            _logger.error("could not get companyId");
        }
0 голосов
/ 02 февраля 2011

Похоже, вы используете драйвер Microsoft SQL Server. Взгляните на http://msdn.microsoft.com/en-us/library/ms378988.aspx,, и вы сможете использовать свойство applicationName , чтобы определить, какой бизнес использует соединение. Преимущество такого подхода состоит в том, что средства профилирования и ведения журнала SQL Server также идентифицируют бизнес в соединении.

Чтобы программно получить applicationName или, в вашем случае, бизнес, вы можете использовать java.sql.Driver.getPropertyInfo (url, properties).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...