Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Объекты источника данных и пулы соединений

Для хранения, организации и извлечения данных большинство приложений используют реляционную базу данных. Компоненты Java EE могут обращаться к реляционным базам данных через API JDBC. Для получения информации об этом API см. http://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/.

В API JDBC доступ к базам данных осуществляется с помощью объектов DataSource. DataSource имеет набор свойств, которые идентифицируют и описывают реальный источник данных, который он представляет. Эти свойства включают в себя такую ​​информацию, как местоположение сервера базы данных, имя базы данных, сетевой протокол, используемый для связи с сервером, и так далее. В GlassFish Server источник данных называется ресурсом JDBC.

Приложения получают доступ к источнику данных, используя соединение, а объект DataSource можно рассматривать как фабрику для соединений с конкретным источником данных, который представляет объект DataSource. В базовой реализации DataSource вызов метода getConnection возвращает объект подключения, который является физическим соединением с источником данных.

Объект DataSource может быть зарегистрирован сервисом имён JNDI. В этом случае приложение может использовать API JNDI для доступа к этому объекту DataSource, который затем можно использовать для подключения к источнику данных, который он представляет.

Объекты DataSource, которые реализуют пул соединений, также создают соединение с конкретным источником данных, который представляет класс DataSource. Объект соединения, который возвращает метод getConnection, является дескриптором объекта PooledConnection, а не физическим соединением. Приложение использует объект соединения так же, как оно использует соединение. Пул соединений не влияет на код приложения, за исключением того, что пул соединений, как и все соединения, всегда должен быть явно закрыт. Когда приложение закрывает соединение, которое находится в пуле, оно возвращается в пул для повторного использования. В следующий раз, когда вызывается getConnection, дескриптор одного из этих объединённых соединений будет возвращен, если он доступен. Поскольку пул соединений не создаёт новое физическое соединение при каждом запросе, приложения могут работать значительно быстрее.

Пул соединений JDBC — это группа повторно используемых соединений для конкретной базы данных. Поскольку создание каждого нового физического соединения занимает много времени, сервер поддерживает пул доступных соединений для повышения производительности. Когда приложение запрашивает соединение, оно получает его из пула. Когда приложение закрывает соединение, оно возвращается в пул.

Приложения, использующие API персистентности, указывают объект DataSource в элементе jta-data-source файла persistence.xml:

<jta-data-source>jdbc/MyOrderDB</jta-data-source>

Обычно это единственная ссылка на объект JDBC для юнита персистентности. Код приложения не ссылается ни на какие объекты JDBC.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)