За очень редкими исключениями, единственное подключение к базе данных для всей программы - это "правильная" вещь.
Подключение стоит чего-то. Все ваши запросы могут использовать это одно соединение.
Конечно, «конструктор» должен выполнить «соединение». И пусть «деструктор» делает «отключить».
Класс должен быть «одноэлементным» (или эквивалентным), чтобы избежать случайного получения двух соединений.
Ваш код имеет public MyConnection()
, что просит пользователя создать несколько соединений. Это должно быть private
и вызываться только один раз, например, так:
public Connection getCon() {
if (con == NULL) { // or whatever the syntax is
MyConnection(); // Here's the _one_ connection
}
return con;
}
Затем пользователи вызывают getCon()
, чтобы получить одно соединение, и использовать его для выполнения запросов.
Остерегайтесь : Если ваш язык поддерживает несколько потоков, выполните одно из следующих действий:
- Выполняйте операции с базой данных только из одного потока или
- Иметь (максимум) одно соединение на поток.
PS: я полагаю, что этот совет применим к любому языку OO.
В качестве сноски, установка двух соединений в попытке получить дополнительную производительность, вероятно, будет бесполезной. Или, по крайней мере, не стоит усилий.
Еще одна вещь, о которой нужно знать ... HTTP, в основном, не имеет состояния. Итак, если у вас есть одна веб-страница для «регистрации», которая придет, и go - одно соединение с некоторым количеством SQL-запросов, то она исчезнет. Другая веб-страница для «входа» будет включать другой HTTP-запрос, другое соединение и т. Д. c.
После этого память, в которую пользователь «вошел», должна где-то храниться:
- В параметрах URL - может быть взломан
- В кулинарии ie - разумно для легких приложений
- Другое - Вам нужен совет по безопасности при работе с чувствительными ( информация о кредитной карте, медицинском обслуживании и т. д. c) и необходимо go с веб-страницы на веб-страницу.