Я бы настоятельно рекомендовал использовать пул соединений, явно (например, c3p0 ) или предоставленный вашим контейнером сервлета.
Откройте соединение с базой данных, когда вам это нужно, затем закройтеэто как можно скорее - пул соединений позаботится о реальном сетевом соединении.
Если вы этого не сделаете, у вас будет одно соединение для всего приложения - что означает, что вы можете обработать только однозапрос за один раз, и весь ваш код должен синхронизироваться вокруг запросов к базе данных.Конечно, вы хотите, чтобы несколько полностью независимых запросов могли выполняться одновременно?Вы не можете сделать это с одним соединением.
Что касается лучшего способа открытия соединения, настроив соответствующий пул соединений - вы все равно можете использовать DriverManager.getConnection()
, но вместо этого указав пул соединенийMySQL напрямую.