Попробую на примере одного из сервисов взятого с одного так и не дописанного проекта.
Работа с БД была организована через класс возвращающего ДАО, для конкретного типа - DataAccessManager (мультитон). В метод передается SELECT - запрос. На выходе объект класса Статья. В таблице со статьей лежит айДи автора, поэтому он достается отдельно и добавляется в объект. После всех манипуляций ресурсы высвобождаются.
private List getArticlesFromDB (String artQuery) {
List res = new LinkedList ();
Connection cn = null;
Statement st = null;
ResultSet rs = null;
try {
cn = DBUtils.getConnection ();
st = cn.createStatement ();
rs = st.executeQuery (artQuery);
while (rs.next ()) {
User author = DataAccessManager.getUserMapper ()
.getUser (rs.getInt ("author_id"));
Article article = new Article (
rs.getString ("title"),
rs.getString ("nested_text"),
author);
article.setId (rs.getInt ("id"));
}
return res;
} catch (SQLException e) {
e.printStackTrace ();
return null;
} finally {
DBUtils.cleanResources (rs, st, cn);
}
}
Страшно? Ты же еще не пробовал!
BUtils - это еще один синглтон, хранящий соединения.
ОтветитьУдалить