Пул соединений с базой данных (с Java) - PullRequest
0 голосов
/ 18 ноября 2011

Я хотел бы узнать ваши мысли о том, может ли этот тип методологии быть практически реализован. Я очень хорошо разбираюсь в пуле баз данных, так что прости меня за недоразумения. У меня есть несколько классов, вызывающих класс dbData (который подключается к базе данных и имеет вспомогательные функции, например, часто использует get, updates и т. Д.). Мне нужно сохранить все функции get и update в классе dbData, но сохранить пул активных соединений, которые я могу использовать повторно. Это означает, что я буду создавать экземпляр класса dbData несколько раз, каждый раз проверяя, существует ли соответствующее соединение, если нет, создайте новое и поместите его в пул.

Мой вопрос в том, как и где вы будете хранить этот пул. Возможно, я мог бы сделать это, если бы dbData не был создан более одного раза и сохранил один постоянный объект пула. Но в моем случае у меня есть несколько экземпляров dbData, которые должны подключаться к одному пулу. Я думал о сериализации объекта пула, но это кажется смешным. Возможно ли это (что показано на рис.)? Кажется, у меня проблемы с объектно-ориентированной частью этого дизайна.

В приложениях используется многопоточность с Class1 и Class2.

Я бы не хотел использовать внешние библиотеки, если это возможно.

db pool img

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

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

0 голосов
/ 18 ноября 2011

Рассматривали ли вы использование шаблона проектирования Singleton?
http://en.wikipedia.org/wiki/Singleton_pattern
http://java.sun.com/developer/technicalArticles/Programming/singletons/

...