Всем привет.
Предыстория в двух словах. Решал задачи, читал книги, решил, что пора попробовать свои силы в какой-ниюудь компании, получил тестовое задание (описываю своими словами):
"Система ввода и отображения студентов - две вкладки: студенты и группы, и редактирование всей этой информации, бд - любая встроенная"
Самая основная проблема то, что я не знаю как проектировать программы (uml я тоже не умею пользоваться, просто постарался представить как это могло быть):
Так, вот вопросы:
1. Когда правильно подключаться к бд?
- Создается единственное подключение и потом, каким-то образом работаем с данными, в конце программы закрываем соединение(например, получили данные из таблицы, запихали их в вектор, по ходу программы редактируем их или отображаем, а когда надо сохранить - записываем их в бд, я считаю этот подход ахинеей, но может быть =)) )
- Выполняем коннект каждый раз, например, когда кликаем по кнопке.
Подскажите, как быть в этой ситуации, на какую литературу обратить внимание.

ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
т.е. в конструкторе listener'a надо обрабатывать datasource.getConnection();
docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html
Можно еще посмотреть на C3P0 или Proxool как реализацию.
habrahabr.ru/post/101342/ можно почитать еще.
Статья с хабра понравилась, наверное, это то, что надо, буду пробовать =)
Connection Pool это действительно то, что тебе надо (да и не тлько тебе, а и всем остальным)