Ja procurei em diversos lugares e faz um tempão que estou com essa problema, meu código é o seguinte:
ArrayList<Bean> lista = new ArrayList<Bean>();
Connection cn = null;
try{
cn = Conn.getConnection();
ResultSet rs = cn.createStatement().executeQuery("select idLinha, titulo, dataInicio, dataFim from NovaTabela");
while (rs.next()){
Calendar dataInicio = Calendar.getInstance();
if (rs.getDate("dataInicio") != null){
dataInicio = Calendar.getInstance();
dataInicio.set(rs.getDate("dataInicio").getYear()+1900, rs.getDate("dataInicio").getMonth(), rs.getDate("dataInicio").getDate());
}
Calendar dataFim = Calendar.getInstance();
if (rs.getDate("dataFim") != null){
dataFim = Calendar.getInstance();
dataFim.set(rs.getDate("dataFim").getYear()+1900, rs.getDate("dataFim").getMonth(), rs.getDate("dataFim").getDate());
}
lista.add(new Bean(rs.getInt("idLinha"), rs.getString("titulo"), dataInicio, dataFim));
}
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}finally{
Conn.freeConnection(cn);
}
A questão é que não sei se existe um jeito mais facil para instanciar a data do Banco no Calendar, mas o principal problema é que quando um registro de data (dataInicio ou dataFim) não é inicializada correntamente, ficando (“0000-00-00”) ele da o seguinte erro:
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
Alguem sabe como posso resolver isso?
vlw
[]'s