powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Одно mysql соединение на всю программу.
7 сообщений из 7, страница 1 из 1
Одно mysql соединение на всю программу.
    #38383459
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Правильно ли в программе использовать одно соединение с БД (MySQL) при условии что запросы будут выполняться из разных потоков? Или правильнее все же использовать такую конструкцию? Спасибо!

Псевдокод:

Код: c#
1.
2.
3.
4.
5.
6.
функция(){ 
   Подключиться _к_БД;
   Выполнить_запрос;
   Разобрать_результат;
   Отключиться_от_БД;
}



Или:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Соединение;

функция(){
   Соединение = получить_соединение;
}

функция(){ 
   Выполнить_запрос;
   Разобрать_результат;
}
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383496
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второе, только
Код: java
1.
Соединение = Data Base Connection Pool
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383522
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv,

Спасибо. А можно пример на java?
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383531
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, вам верно заметили, что коннекшн из разных потоков использовать нельзя. Вернее, в общем случае нельзя , может быть какие-то реализации и являются потокобезопасными (в чем я очень сомневаюсь).
Выход - пул соединений. Обычно его реализуют через интерфейс java.sql.DataSource. В программах, которые работают в окружении серверов приложений, пулы обычно конфигурируют на сервере, а потом получают через JNDI.
Если вам такой вариант не подходит - то берите какую-нибудь реализацию и создавайте его сами. Например, c3p0 . Некоторые драйвера могут предоставлять свои реализации пулов под разные нужды. Ищите в гугле по ключевым словам "[ваша СУБД] java connection pool".
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383598
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем усложнять код межпотоковым соединением. При старте потока пусть получит его сам. Итого Поток=Коннект
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383638
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel Псевдокод:

Код: c#
1.
2.
3.
4.
5.
6.
функция(){ 
   Подключиться _к_БД;
   Выполнить_запрос;
   Разобрать_результат;
   Отключиться_от_БД;
}

Слегка измененный вариант №1:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
НАЧАЛО_ПРОГРАММЫ() { 
   Подключиться _к_БД;
}

SYNCHRONIZED_ФУНКЦИЯ() { 
   Выполнить_запрос;
   Разобрать_результат;
}

КОНЕЦ_ПРОГРАММЫ() { 
   Отключиться_от_БД;
}

- На всю программу будет всего лишь одно подключение
- Все запросы будут выполняться последовательно (подойдет ли это в Вашем случае?)
...
Рейтинг: 0 / 0
Одно mysql соединение на всю программу.
    #38383776
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavelЗдравствуйте. Правильно ли в программе использовать одно соединение с БД (MySQL) при условии что запросы будут выполняться из разных потоков? Или правильнее все же использовать такую конструкцию? Спасибо!

С соединениями к БД надо работать через пул потоков.Тогда количество соединений к БД становится не более, чем настройкой пула.

Один из самых приятных пулов на сегодняшний день - tomcat-jdbc.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Одно mysql соединение на всю программу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]