Создание подключения, как правило, довольно затратная операция.
Многое зависит от используемой БД и частоты запросов (если запрос в БД требуется раз в час, например, смысл держать открытым соединение?), но на практике обычно используется первый вариант, создается несколько (реже- один) коннектов к БД (пул соединений), которые и используются при работе приложения, изредка обновляясь.