JDBC использует URL для подключения - PullRequest
0 голосов
/ 11 января 2010

При настройке URL в свойствах jdbc, например:

jdbc:derby://localhost:1527/vehicle;create=true

Означает ли это, что все данные отправляются через HTTP на определенный порт? (это так очевидно)

Ответы [ 3 ]

5 голосов
/ 11 января 2010

Это не имеет ничего общего с HTTP, нет.Используемый протокол зависит от базы данных и драйвера JDBC, как и формат URL JDBC.Единственное, что является общим для всех URL-адресов JDBC - это префикс jdbc:.

В этом конкретном случае я бы сказал, что у вас есть URL-адрес Apache Derby JDBC, подключающийся к серверу через локальный порт 1527, база данных (илиможет быть, пользователь) имя «транспортное средство», создавая его при необходимости.

Другим примером может быть формат URL JDBC Oracle:

jdbc:oracle:<drivertype>:<username/password>@<database>

Очень отличается от формата Derby, но с указанием того же видаинформации.

1 голос
/ 11 января 2010

Цитирование главы 6 Соединения с базой данных спецификации для JDBC API (это старая версия, но я нахожу ее более понятной, чем более свежие версии об URL-адресах JDBC):

6,3 URL

6.3.1 Цели для именования баз данных JDBC

Нам нужно указать способ именования. базы данных, так что авторы приложений можно указать, какую базу данных они хотят подключиться к.

Нам бы хотелось, чтобы это JDBC называлось механизм, чтобы иметь следующее Свойства:

  • Разные драйверы могут использовать разные схемы именования баз данных. За Например, драйвер моста JDBC-ODBC может поддержка простого источника данных в стиле ODBC имена, тогда как сетевой протокол Водителю может понадобиться дополнительная информация информация, чтобы он мог узнать, какие имя хоста и порт для подключения.
  • Если пользователь загружает апплет, который хочет общаться с определенной базой данных, тогда мы хотели бы иметь возможность открыть подключение к базе данных без необходимости пользователь делает любую систему работа по дому. Таким образом, для Например, мы хотим избежать необходимости аналог управляемой человеком Таблицы источника данных ODBC на клиенте машины. Это подразумевает, что это должно можно закодировать любое необходимое информация о соединении в JDBC имя.
  • Мы хотели бы разрешить уровень косвенности в имени JDBC, чтобы исходное имя может быть решено с помощью некоторая система именования сети для того, чтобы найдите базу данных. Это позволит системные администраторы, чтобы избежать указав конкретные хосты как часть имя JDBC. Тем не менее, так как там несколько разных сетевых имен услуги (такие как NIS, DCE и т. д.) мы не желаю поручить что-либо используется конкретный сетевой сервер имён.

6.3.2 Синтаксис URL

К счастью, во всемирной паутине есть уже стандартизированы по именованию система, которая поддерживает все эти свойства. Это униформа Механизм поиска ресурсов (URL). Так мы предлагаем использовать URL для JDBC называть, и просто рекомендовать некоторые соглашения по структурированию URL JDBC.

Мы рекомендуем, чтобы URL JDBC был структурированный как:

jdbc:<subprotocol>:<subname>

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

Если вы указываете сеть адрес как часть вашего имени, мы рекомендуем следовать стандартному URL соглашение об именах "// имя_хоста: порт / имя_подписки" для подимени. Подзаголовок может иметь произвольный внутренний синтаксис.

Подведем итог:

  • Единственная общая черта URL JDBC и URL HTTP заключается в том, что оба используют одну и ту же стандартизированную систему имен: механизм Uniform Resource Locator (URL) (это только рекомендация для JDBC 1 ).

  • URL JDBC специфичен для драйвера JDBC (разные драйверы для одной и той же базы данных будут использовать разные схемы). Подробности см. В документации к драйверу JDBC (например, при использовании сетевого сервера Derby посмотрите Формат URL сетевого клиента Derby ).

  • И нет, протокол, используемый клиентом JDBC для связи с сервером базы данных, не является HTTP (это его протокол, специфичный для базы данных).


1 На самом деле URL-адрес JDBC может не являться реальным URI, как упомянуто в этом примечании относительно новой JSR 221: Спецификация API JDBCTM 4.0 :

Примечание - URL JDBC не требуется для полного соответствия синтаксису URI, как определено в RFC 3986, унифицированный идентификатор ресурса (URI): общий синтаксис.

0 голосов
/ 11 января 2010

Короткий ответ - нет. Чтобы понять, почему вам нужно понять синтаксис URL. Основной синтаксис URI:

<url> ::= <scheme>:<scheme-specific-part>

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

http://www.example.com/somepage.html

хотя веб-браузеры также понимают другие схемы, такие как «ftp», «mailto» и так далее.

Но, как вы можете видеть, URL JDBC использует схему 'jdbc'; например

jdbc:derby://localhost:1527/vehicle;create=true

В некоторых случаях (например, «http» и «ftp») схема имеет соответствующий прикладной протокол (например, HTTP или FTP соответственно), который может использоваться для доступа к контенту. (Предполагается, что URL-адрес действительно разрешается для чего-то, что можно извлечь).

В других случаях, включая схему 'jdbc', URL-адрес не обозначает контент и не обязательно даже указывает протокол. В случае JDBC URL фактически указывает местоположение конечной точки (и другие детали) для доступа к базе данных. Материал после второго двоеточия зависит от драйвера JDBC / RDBMS, как в синтаксисе, так и в том, что он означает. Но очень маловероятно, что задействован HTTP или что веб-браузер знает, что делать с URL JDBC.

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