Excluir Histórico do Banco de Dados de ANO em ANO

3 respostas
F

Olá pessoal,

Minha aplicação Java precisa realizar a seguinte operação:

  • Durante um ano de uso, o software precisa armazenar dados num histórico do Banco de Dados. No final deste período (1 ano), o histórico deverá ser apagado automaticamente, assim que o software for iniciado. Isso se realizará sucessivamente.

Tem alguma API específica que resolva este meu problema? Pensei em resolver com Calendar. Dá certo?
Outra coisa: se usar Calendar (ou GregorianCalendar), o melhor é colocar um if verificando se passou 1 ANO ou 365 dias da última operação? E se o ano for de 366 dias?

Alguém pode me ajudar?
Obrigado!

3 Respostas

otaviojava

Você pode verificar se o dia e o mês são iguais (ignorando o ano) caso sejam apague o registro

jamirdeajr
Também poderia ser feito algo assim, excluir tudo com data anterior a atual trocando o ano pelo anterior:
Calendar data = Calendar.getInstance();
data.set(Calendar.YEAR, data.get(Calendar.YEAR)-1);

PreparedStatement stmt = conexao.prepareStatement"delete from tabela where data <= ?");
stmt.SetDate(data);
stmt.execute();
Obs. supondo JDBC, senão é só adaptar para sua ferramenta ORM.
otaviojava
jamirdeajr:
Também poderia ser feito algo assim, excluir tudo com data anterior a atual trocando o ano pelo anterior:
Calendar data = Calendar.getInstance();
data.set(Calendar.YEAR, data.get(Calendar.YEAR)-1);

PreparedStatement stmt = conexao.prepareStatement"delete from tabela where data <= ?");
stmt.SetDate(data);
stmt.execute();
Obs. supondo JDBC, senão é só adaptar para sua ferramenta ORM.

boa

Criado 6 de agosto de 2011
Ultima resposta 7 de ago. de 2011
Respostas 3
Participantes 3