Estou tentando fazer um comando sql para retornar registros de ids de uma tabela inseridos entre duas datas, só que não aparece nada na linkedList:
public LinkedList atividades(int idAluno, String dataInicial, String dataFinal) throws SQLException{
Connection conn=ConnectionFactory.getConnection();
LinkedList lista= new LinkedList();
ResultSet rs=null;
String sql=“SELECT idAtividade FROM atividade where idAluno = ? and diaAtividade between ? and ?;”;
//seleciona os ids das atividades
PreparedStatement stm= conn.prepareStatement(sql);
stm.setInt(1, idAluno);
stm.setString(2, dataInicial);
stm.setString(3, dataFinal);
rs=stm.executeQuery();
while(rs.next()){
atividade at= new atividade();
at.setIdAtividade(rs.getInt(1));
lista.add(at.getIdAtividade());
}
return lista;
}
MrTrafford,
É provável que seja porque teu campo data está sendo passado como String e não Date (supondo que a tabela no banco também tem tipo Date nesses campos, é claro),
Sugiro alterar o método para receber parâmetro já em formato Date e antes de chamar fazer a conversão.
Para converter as datas de String para Date dê uma olhada aqui:http://www.guj.com.br/articles/8
public LinkedList atividades(int idAluno, Date dataInicial, Date dataFinal) throws SQLException{
Connection conn=ConnectionFactory.getConnection();
LinkedList lista= new LinkedList();
ResultSet rs=null;
String sql="SELECT idAtividade FROM atividade where idAluno = ? and diaAtividade between ? and ?;";
//seleciona os ids das atividades
PreparedStatement stm= conn.prepareStatement(sql);
stm.setInt(1, idAluno);
stm.setDate(2, dataInicial);
stm.setDate(3, dataFinal);
rs=stm.executeQuery();
while(rs.next()){
atividade at= new atividade();
at.setIdAtividade(rs.getInt(1));
lista.add(at.getIdAtividade());
}
return lista;
}
Boa Sorte!