@Test public void filterByDateTest() throws Exception { List<Entrada> entradas; FiltroEntrada filtro = new FiltroEntrada(); OrdenacaoEntrada ordem = new OrdenacaoEntrada(); entradas = entradaDao.search(filtro, ordem); assertEquals(3, entradas.size()); assertEquals(new Integer(1), entradas.get(0).getId()); assertEquals(new Integer(2), entradas.get(1).getId()); assertEquals(new Integer(3), entradas.get(2).getId()); ordem.setOrdem("desc"); entradas = entradaDao.search(filtro, ordem); assertEquals(3, entradas.size()); assertEquals(new Integer(3), entradas.get(0).getId()); assertEquals(new Integer(2), entradas.get(1).getId()); assertEquals(new Integer(1), entradas.get(2).getId()); ordem.setOrdem(null); filtro.setDe(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-14 08:01:00")); filtro.setAte(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-14 12:00:00")); entradas = entradaDao.search(filtro, ordem); assertEquals(2, entradas.size()); ordem.setOrdem(null); filtro.setDe(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-14 08:01:00")); filtro.setAte(null); entradas = entradaDao.search(filtro, ordem); assertEquals(3, entradas.size()); ordem.setOrdem(null); filtro.setDe(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-15 08:01:00")); filtro.setAte(null); entradas = entradaDao.search(filtro, ordem); assertEquals(1, entradas.size()); ordem.setOrdem(null); filtro.setAte(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-15 08:01:00")); filtro.setDe(null); entradas = entradaDao.search(filtro, ordem); assertEquals(2, entradas.size()); ordem.setOrdem(null); filtro.setAte(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-10-14 08:01:00")); filtro.setDe(null); entradas = entradaDao.search(filtro, ordem); assertEquals(2, entradas.size()); ordem.setOrdem(null); ordem.setOrdem("desc"); entradas = entradaDao.search(filtro, ordem); assertEquals(2, entradas.size()); assertEquals(new Integer(2), entradas.get(0).getId()); assertEquals(new Integer(1), entradas.get(1).getId()); }
public List<Entrada> search( FiltroEntrada filtro, OrdenacaoEntrada ordem) { Connection con = null; PreparedStatement ps = null; try { con = ds.getConnection(); ps = con.prepareStatement( "select * from entrada " + "where (? is null or TRUNC(horario) >= ?) " + "and (? is null or TRUNC(horario) <= ?) " + "and (? is null or UPPER(descricao) like CONCAT('%', ? , '%')) " + "order by " + ordem.getOrderBy() ); if (filtro.getDe() == null) { ps.setNull(1, Types.DATE); ps.setNull(2, Types.DATE); } else { ps.setDate(1, new java.sql.Date(filtro.getDe().getTime())); ps.setDate(2, new java.sql.Date(filtro.getDe().getTime())); } if (filtro.getAte() == null) { ps.setNull(3, Types.DATE); ps.setNull(4, Types.DATE); } else { ps.setDate(3, new java.sql.Date(filtro.getAte().getTime())); ps.setDate(4, new java.sql.Date(filtro.getAte().getTime())); } if (filtro.getDescricao() == null) { ps.setNull(5, Types.VARCHAR); ps.setNull(6, Types.VARCHAR); } else { ps.setString(5, filtro.getDescricao()); ps.setString(6, filtro.getDescricao().toUpperCase()); } ResultSet rs = ps.executeQuery(); List<Entrada> lista = new ArrayList<Entrada>(); while (rs.next()) { Entrada e = new Entrada(); e.setId(rs.getInt("id")); e.setHorario(rs.getTimestamp("horario")); e.setDescricao(rs.getString("descricao")); e.setPrioridade(Prioridade.fromCode(rs.getString("prioridade"))); e.setIdUsuario(rs.getInt("id_usuario")); lista.add(e); } return lista; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
EntradaDao { public List<Entrada> search( FiltroEntrada filtro, OrdenacaoEntrada ordem) { Connection con = null; PreparedStatement ps = null; try { con = ds.getConnection(); ps = con.prepareStatement( "select * from entrada " + "where (? is null or TRUNC(horario) >= ?) " + "and (? is null or TRUNC(horario) <= ?) " + "and (? is null or UPPER(descricao) like CONCAT('%', ? , '%')) " + "order by " + ordem.getOrderBy() ); if (filtro.getDe() == null) { ps.setNull(1, Types.DATE); ps.setNull(2, Types.DATE); } else { ps.setDate(1, new java.sql.Date(filtro.getDe().getTime())); ps.setDate(2, new java.sql.Date(filtro.getDe().getTime())); } if (filtro.getAte() == null) { ps.setNull(3, Types.DATE); ps.setNull(4, Types.DATE); } else { ps.setDate(3, new java.sql.Date(filtro.getAte().getTime())); ps.setDate(4, new java.sql.Date(filtro.getAte().getTime())); } if (filtro.getDescricao() == null) { ps.setNull(5, Types.VARCHAR); ps.setNull(6, Types.VARCHAR); } else { ps.setString(5, filtro.getDescricao()); ps.setString(6, filtro.getDescricao().toUpperCase()); } ResultSet rs = ps.executeQuery(); List<Entrada> lista = new ArrayList<Entrada>(); while (rs.next()) { Entrada e = new Entrada(); e.setId(rs.getInt("id")); e.setHorario(rs.getTimestamp("horario")); e.setDescricao(rs.getString("descricao")); e.setPrioridade(Prioridade.fromCode(rs.getString("prioridade"))); e.setIdUsuario(rs.getInt("id_usuario")); lista.add(e); } return lista; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
EntradaDao { public List<Entrada> search( FiltroEntrada filtro, OrdenacaoEntrada ordem) { Connection con = null; PreparedStatement ps = null; try { con = ds.getConnection(); ps = con.prepareStatement( "select * from entrada " + "where (? is null or TRUNC(horario) >= ?) " + "and (? is null or TRUNC(horario) <= ?) " + "and (? is null or UPPER(descricao) like CONCAT('%', ? , '%')) " + "order by " + ordem.getOrderBy() ); if (filtro.getDe() == null) { ps.setNull(1, Types.DATE); ps.setNull(2, Types.DATE); } else { ps.setDate(1, new java.sql.Date(filtro.getDe().getTime())); ps.setDate(2, new java.sql.Date(filtro.getDe().getTime())); } if (filtro.getAte() == null) { ps.setNull(3, Types.DATE); ps.setNull(4, Types.DATE); } else { ps.setDate(3, new java.sql.Date(filtro.getAte().getTime())); ps.setDate(4, new java.sql.Date(filtro.getAte().getTime())); } if (filtro.getDescricao() == null) { ps.setNull(5, Types.VARCHAR); ps.setNull(6, Types.VARCHAR); } else { ps.setString(5, filtro.getDescricao()); ps.setString(6, filtro.getDescricao().toUpperCase()); } ResultSet rs = ps.executeQuery(); List<Entrada> lista = new ArrayList<Entrada>(); while (rs.next()) { Entrada e = new Entrada(); e.setId(rs.getInt("id")); e.setHorario(rs.getTimestamp("horario")); e.setDescricao(rs.getString("descricao")); e.setPrioridade(Prioridade.fromCode(rs.getString("prioridade"))); e.setIdUsuario(rs.getInt("id_usuario")); lista.add(e); } return lista; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }  }
EntradaDao { public List<Entrada> search( FiltroEntrada filtro, OrdenacaoEntrada ordem) { Connection con = null; PreparedStatement ps = null; try { con = ds.getConnection(); ps = con.prepareStatement( "select * from entrada " + "where (? is null or TRUNC(horario) >= ?) " + "and (? is null or TRUNC(horario) <= ?) " + "and (? is null or UPPER(descricao) like CONCAT('%', ? , '%')) " + "order by " + ordem.getOrderBy() ); if (filtro.getDe() == null) { ps.setNull(1, Types.DATE); ps.setNull(2, Types.DATE); } else { ps.setDate(1, new java.sql.Date(filtro.getDe().getTime())); ps.setDate(2, new java.sql.Date(filtro.getDe().getTime())); } if (filtro.getAte() == null) { ps.setNull(3, Types.DATE); ps.setNull(4, Types.DATE); } else { ps.setDate(3, new java.sql.Date(filtro.getAte().getTime())); ps.setDate(4, new java.sql.Date(filtro.getAte().getTime())); } if (filtro.getDescricao() == null) { ps.setNull(5, Types.VARCHAR); ps.setNull(6, Types.VARCHAR); } else { ps.setString(5, filtro.getDescricao()); ps.setString(6, filtro.getDescricao().toUpperCase()); } ResultSet rs = ps.executeQuery(); List<Entrada> lista = new ArrayList<Entrada>(); while (rs.next()) { Entrada e = new Entrada(); e.setId(rs.getInt("id")); e.setHorario(rs.getTimestamp("horario")); e.setDescricao(rs.getString("descricao")); e.setPrioridade(Prioridade.fromCode(rs.getString("prioridade"))); e.setIdUsuario(rs.getInt("id_usuario")); lista.add(e); } return lista; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }  void setDataSource(DataSource ds); Entrada findById(int id); void insert(Entrada entrada); int update(Entrada entrada); int remove(Integer id); List<Entrada> search(
			FiltroEntrada filtro,
			OrdenacaoEntrada ordem); }
EntradaDao { public List<Entrada> search( FiltroEntrada filtro, OrdenacaoEntrada ordem) { Connection con = null; PreparedStatement ps = null; try { con = ds.getConnection(); ps = con.prepareStatement( "select * from entrada " + "where (? is null or TRUNC(horario) >= ?) " + "and (? is null or TRUNC(horario) <= ?) " + "and (? is null or UPPER(descricao) like CONCAT('%', ? , '%')) " + "order by " + ordem.getOrderBy() ); if (filtro.getDe() == null) { ps.setNull(1, Types.DATE); ps.setNull(2, Types.DATE); } else { ps.setDate(1, new java.sql.Date(filtro.getDe().getTime())); ps.setDate(2, new java.sql.Date(filtro.getDe().getTime())); } if (filtro.getAte() == null) { ps.setNull(3, Types.DATE); ps.setNull(4, Types.DATE); } else { ps.setDate(3, new java.sql.Date(filtro.getAte().getTime())); ps.setDate(4, new java.sql.Date(filtro.getAte().getTime())); } if (filtro.getDescricao() == null) { ps.setNull(5, Types.VARCHAR); ps.setNull(6, Types.VARCHAR); } else { ps.setString(5, filtro.getDescricao()); ps.setString(6, filtro.getDescricao().toUpperCase()); } ResultSet rs = ps.executeQuery(); List<Entrada> lista = new ArrayList<Entrada>(); while (rs.next()) { Entrada e = new Entrada(); e.setId(rs.getInt("id")); e.setHorario(rs.getTimestamp("horario")); e.setDescricao(rs.getString("descricao")); e.setPrioridade(Prioridade.fromCode(rs.getString("prioridade"))); e.setIdUsuario(rs.getInt("id_usuario")); lista.add(e); } return lista; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }  void setDataSource(DataSource ds); Entrada findById(int id); void insert(Entrada entrada); int update(Entrada entrada); int remove(Integer id); List<Entrada> search(
			FiltroEntrada filtro,
			OrdenacaoEntrada ordem);  }