Настройка фабрики DAO с помощью пулированного источника данных - PullRequest
0 голосов
/ 07 января 2011

После нескольких советов по настройке фабрики DAO с помощью источника данных в пуле. Предположим, что это фабрика JDBC DAO (из абстрактной фабрики), а объединенный источник данных настраивается и управляется сервером приложений, например Glassfish

Когда фабрика создается впервые (шаблон Singleton), она выполняет поиск JNDI для объединенного источника данных, например, из файла свойств, который установит объединенный источник данных на фабрике JDBC DAO.

Тогда, когда вы создадите экземпляр и вернете конкретный DAO, передадите ли вы ему ссылку на источник данных, чтобы он мог получить соединение с базой данных?

1 Ответ

0 голосов
/ 07 января 2011

По сути, я инкапсулировал этот источник данных как поле в базовом классе, называемом DAO.В конструкторе DAO вы передаете имя JNDI соединения, которое вы хотите.

public DAO(String jndiName) throws NamingException {
  ds = DataSourceFactory.getInstance().lookup(jndiName);
}

Затем во всех ваших конкретных классах вы просто расширяете DAO и можете использовать источник данных по своему усмотрению.

public concreteDAO() throws NamingException {
  super("Some JNDI Name That this DAO should know");
}

В том же классе DAO есть некоторые другие служебные методы, такие какметод очистки, который молча закрывает ResultSet, Statement и Connections.Таким образом, я просто должен добавить это в предложение finally всех моих методов.

...