четверг, 18 февраля 2010 г.

DAO

Итак, работа с БД.
Попробую на примере одного из сервисов взятого с одного так и не дописанного проекта.
Работа с БД была организована через класс возвращающего ДАО, для конкретного типа - 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);
}
}


Страшно? Ты же еще не пробовал!

1 комментарий:

  1. BUtils - это еще один синглтон, хранящий соединения.

    ОтветитьУдалить