Источник данных представляет собой отображение реального источника данных, например, реляционной базы данных. Когда объект-источник данных зарегистрирован службой имен JNDI, приложение может получить его с помощью службы имен и использовать для установления соединения с источником, который он представляет.
Информация об источнике данных и о том, как его найти, в частности, его имя, сервер, на котором он находится, номер порта и т. п., хранится в виде свойств объекта DataSource. Это дает больше возможности для переноса приложений, поскольку не нужно жестко задавать имя драйвера, которое часто содержит название конкретного производителя. Это также упрощает обслуживание кода, поскольку, если например источник данных переносится на другой сервер, все, что нужно сделать — это изменить соответствующее свойство источника данных. Код, использующий данный источник, затрагивать не требуется.
Как только источник данных зарегистрирован в пространстве имен JNDI сервера приложений, программисты, пишущие приложения, могут использовать его для установления соединения с источниками, которые данный объект представляет.
Соединение, как правило, представляет собой соединение из пула. Иными словами, когда приложение закрывает соединение, соединение возвращается в пул, а не уничтожается.
Классы источников данных и драйверов JDBC реализует производитель источника данных. Конфигурируя провайдер JDBC, мы предоставляем информацию о наборе классов, использованных для реализации источника данных и драйвера базы данных. Мы указываем настройки среды для объекта DataSource. Драйвер может быть написан только на языке программирования Java или с использованием сочетания Java и платформо-зависимых (native) методов Java Native Interface (JNI).
В следующих разделах мы опишем, как создать и сконфигурировать объект-источник данных, а также как конфигурируются пулы соединений, используемые для обслуживания соединений с источником.