Пишется приложение. Для взаимодействия с базой используется DAO-прослойку. И вот думаю открывать коннект при запуске приложения и соответственно при закрытии приложения - закрывать. Или открывать коннект только при непосредственном обращении к ней (например вызов метода getAll()) и закрывать по завершении операции (connection.close()). Пишу на java, СУБД - MySQL. Направьте на путь истинный. Или ссылки, где подробно описано что и почему.
если приложение имеет всего пару запросов к базе - такой подход не страшет. Но если предусматривает интенсивную работу и открытые курсоры, то открывать базу нужно при первом обращении к базе, потом просто проверять, что соединение установлено. Закрывать лучше всего при финализации объектов.
Ну нормально было бы открывать коннект когда он действительно нужен, а закрывать спустя №-времени не использования.
НО.
Если это десктопное приложение, то такая логика может отодвинуть момент когда обнаружится что БД не доступна.