Соединение с базой данных, объединяющее datastructure

text.Trim () должен использоваться

string txt = "                   i am a string                                    ";
txt = txt.Trim();

5
задан Quinn Taylor 15 June 2009 в 19:21
поделиться

7 ответов

Почему бы вместо разработки собственной библиотеки не использовать библиотеку вроде Commons DBCP , которая широко используется и хорошо протестирована.

4
ответ дан 18 December 2019 в 08:30
поделиться

Это должно быть реализовано с использованием шаблона проектирования пула объектов . Вы можете прочитать об этом в Кирчер, Майкл; Прашант Джайн; (2002-07-04). «Шаблон объединения». EuroPLoP 2002. Проверено 9 июня 2007 г. или в Шаблон проектирования пула объектов . Реализацию Java для классов ObjectPool и JDBCConnectionPool можно найти здесь .

Пул объектов обычно представляет собой синглтон с двумя коллекции объектов (например, соединений с базой данных) внутри:

  1. unlocked - для бесплатных объектов, которые могут быть предоставлены клиенту по запросу
  2. locked - для заблокированных объектов, которые используются now

Эти коллекции могут быть реализованы как Списки или HashTables или что-то еще, в зависимости от ваших потребностей. Для простого ObjectPool - структура LinkedList будет достаточно хорошей.

10
ответ дан 18 December 2019 в 08:30
поделиться
3
ответ дан 18 December 2019 в 08:30
поделиться

Вы ищете решение с открытым исходным кодом?

См. API пула подключений к базе данных Apache

0
ответ дан 18 December 2019 в 08:30
поделиться

Обычно вам понадобится:

  • какая-то оболочка вокруг «сырых» объектов Connection для управления такими вещами, как, например, когда соединение был выдан последним, диагностическая информация, возможно, кеш ваших подготовленных операторов для этого соединения и т. д. - вы определяете это, чтобы включить то, что вам нужно
  • , коллекцию для размещения оболочек соединения, которая поддерживает одновременные добавления / удаления - любые должным образом синхронизированный список подойдет, но ConcurrentLinkedQueue был бы разумным выбором
  • способа управления выделениями из пула - рассмотрите возможность использования класса Semaphore
  • , возможно, сгруппировав различные пулы вместе в некоторый «класс управления пулом» (например, так что вы можете просто вызвать "getConnection (databaseName, readOnly)", и он перейдет в соответствующий пул)

Вдобавок к этому, вы можете затем создать любое необходимое вам ведение журнала / мониторинг.

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

группирование различных пулов вместе в некоторый «класс управления пулом» (например, вы можете просто вызвать «getConnection (databaseName, readOnly)», и он перейдет в соответствующий пул)

Вдобавок к этому вы можете затем построить любой журнал / мониторинг

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

группирование различных пулов вместе в некоторый «класс управления пулом» (например, вы можете просто вызвать «getConnection (databaseName, readOnly)», и он перейдет в соответствующий пул)

Вдобавок к этому вы можете затем построить любой журнал / мониторинг

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

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

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

3
ответ дан 18 December 2019 в 08:30
поделиться

См. Это руководство разработчика Sun: Объединение подключений :

В выпусках до JDBC 2.0 каждые сеанс базы данных требует нового подключение и вход, даже если предыдущее соединение и логин использовали та же таблица и учетная запись пользователя. если ты используют выпуск JDBC до 2.0 и хотите повысить производительность, вы вместо этого может кэшировать соединения JDBC.

0
ответ дан 18 December 2019 в 08:30
поделиться

Не уверен, что стоит создавать свои собственные.

Я использовал пул соединений c3p0 Hibernate ) во многих проектах с большим успехом

-1
ответ дан 18 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: