Сколько соединений JDBC в Java?

эта работа для меня, просто предотвратите событие, добавьте URL-адрес в <a> tag, затем запустите событие click на этом tag.

Js
$('.myBtn').on('click', function(event) {
        event.preventDefault();
        $(this).attr('href',"http://someurl.com");
        $(this).trigger('click');
});
HTML
<a href="#" class="myBtn" target="_blank">Go</a>
17
задан Epitaph 23 January 2009 в 03:09
поделиться

5 ответов

Да, необходимо рассмотреть соединения многократного использования вместо того, чтобы создать новое каждый раз. Обычная процедура:

  • высказывают некоторое предположение относительно того, сколько одновременных соединений Ваша база данных может разумно обработать (например, запустить с 2 или 3 на ЦП на машине баз данных, пока Вы не узнаете, что это - лишь немногие или слишком многие - это будет иметь тенденцию зависеть от того, насколько ограниченный диском Ваши запросы)
  • , создают пул из этого много соединений: по существу класс, который можно попросить "следующего бесплатного подключения" в начале каждого метода и затем "пасовать назад" к пулу в конце каждого метода
  • getFreeConnection () метод, должен возвратить бесплатное подключение, если Вы доступны, еще любой (1) создайте новый до максимального количества соединений, которые Вы решили разрешить, или (2) если бы максимум уже создается, ожидает одного для становления свободным
  • , я рекомендовал бы Семафорному классу управлять подключениями; у меня на самом деле есть короткая статья на моем веб-сайте по управление пулом ресурсов с Семафором с примером, я думаю, что Вы могли адаптироваться к своей цели

Несколько практических соображений:

  • Для оптимальной производительности, необходимо быть осторожны не к "пожирателю ресурсов" соединение, в то время как Вы на самом деле не используете его для выполнения запроса . Если Вы берете соединение от пула однажды и затем передаете его различным методам, необходимо удостовериться, что Вы случайно не делаете этого.
  • не забывают возвращать Ваши соединения с пулом! (попытка/наконец является Вашим другом здесь...)
  • Во многих системах, Вы не можете сохранить соединения открытыми 'навсегда' : O/S закроет их после некоторого максимального времени. Таким образом в Вашем 'возврате соединение с пулом' метод, необходимо будет думать приблизительно [1 115] 'уходящие в отставку' соединения, которые были вокруг в течение долгого времени (сборка в некотором механизме для запоминания, например, при наличии , интерфейсный объект вокруг фактического соединения JDBC возражает, что можно использовать для хранения метрик, таких как это)
  • , можно хотеть рассмотреть использование подготовленных операторов.
  • Со временем, Вы, вероятно, должны будете к [1 117] настроить размер пула соединения
22
ответ дан 30 November 2019 в 11:13
поделиться

Можно или передать в соединении или еще лучше использовать что-то как Джакартское Объединение Соединения с базой данных. http://commons.apache.org/dbcp/

9
ответ дан 30 November 2019 в 11:13
поделиться

Необходимо использовать пул соединения для этого.

Тот способ, которым Вы могли попросить соединение и выпустить его, когда Вы - конец с ним и возвращаете его пулу

, Если другой поток хочет новое соединение и что каждый используется, новый мог быть создан. Если никакой другой поток не использует соединение, то же могло бы быть снова использовано.

Этот способ, которым можно оставить приложение так или иначе способом, которым это - (и не передача соединения все вокруг) и все еще использует ресурсы правильно.

, К сожалению, первый класс ConnectionPools не очень просты в использовании в автономных приложениях (они - значение по умолчанию в серверах приложений), Вероятно, микроконтейнер (таких как Sping), или хорошая платформа (тех, которые В спящем режиме), мог позволить Вам использовать тот.

Они не слишком трудны для кодирования один от царапины все же.

:)

Этот поиск Google поможет Вам найти больше о том, как использовать тот.

Скользят до

8
ответ дан 30 November 2019 в 11:13
поделиться

Много драйверов JDBC делают организацию пула подключений для Вас, таким образом, существует мало преимущества, делающего дополнительное объединение в этом случае. Я предлагаю, чтобы Вы проверили документацию на Вас драйвер JDBC.

Другой подход к пулам соединения к

  • , Имеют одно соединение для всего доступа к базе данных с синхронизируемым доступом. Это не позволяет параллелизм, но очень просто.
  • Хранилище соединения в переменной ThreadLocal (переопределяют initialValue ()) Это работает хорошо, если существует маленькое постоянное число потоков.

Иначе, я предложил бы использовать пул соединения.

3
ответ дан 30 November 2019 в 11:13
поделиться

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

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

Обычно, объекты ниже "Соединения" не могут безопасно использоваться от нескольких потоков, таким образом, обычно не желательно совместно использовать ResultSet, объекты Оператора и т.д. между потоками - безусловно, лучшая политика состоит в том, чтобы использовать их в том же потоке, который создал их; это обычно легко, потому что те объекты обычно не сохраняются слишком долго.

1
ответ дан 30 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

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