Паттерн: Цепочка обязанностей (Chain of Responsibility)
Исходник: DAO.java, язык: java [code #485, hits: 6558]
автор: this [добавлен: 04.10.2007]
  1. package chainOfResponsibility;
  2.  
  3. import java.sql.Statement;
  4. import java.sql.Connection;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.List;
  11.  
  12. public class DAO implements DAO_I {
  13. Connection conn;
  14.  
  15. public DAO(Connection conn) {
  16. this.conn = conn;
  17. }
  18.  
  19. public List<News> GetAllNews(Date date) {
  20. List<News> newsList = new ArrayList<News>(1);
  21. java.sql.Date sqlDate = new java.sql.Date(date.getTime());
  22. try {
  23. stmt = conn.prepareStatement("SELECT title, text FROM news WHERE date = ?");
  24.  
  25. stmt.setDate(1, sqlDate);
  26. ResultSet rs = stmt.executeQuery();
  27. while (rs.next()) {
  28. newsList.add(new News(rs.getString("title"), date, rs.getString("text")));
  29. }
  30.  
  31. } catch (SQLException e) {
  32. System.out.println("ошибочка...");
  33. }
  34.  
  35. return newsList;
  36. }
  37.  
  38. public News GetLatestNews() throws SQLException {
  39. Statement stmt = conn.createStatement();
  40. ResultSet rs = stmt.executeQuery(
  41. "SELECT title, text, date FROM news ORDER BY date DESC LIMIT 1");
  42. if (rs.next()){
  43. return new News(rs.getString(1), rs.getDate(3), rs.getString(2));
  44. }
  45.  
  46. return null;
  47. }
  48.  
  49. }
Сущность ConcreteHandler

конкретная реализация DAL интерфейса новостей.
Тестировалось на: java 1.5.0_04

+добавить реализацию