Olá galera, seguinte eu tenho problema com datas. rsrs
Eu estou salvando no BD como registro unico uma data para fechamento do dia. Ou seja, para cada dia somente um registro terá no banco de dados, correto!?
Bom estou inserindo de forma que o BD aceita, com o padrão yyyy-MM-dd.
Agora quando eu quero fazer uma consulta, estou me enroscando. Segue o código abaixo com o que eu fiz.
Cadastro consultaFechamento = new Cadastro();
if (guicontrol.dataConsultaFechamento.getDate() != null) {
Fechamento fechamento = consultaFechamento.consultaFechamento(guicontrol.dataConsultaFechamento.getDate()); // aqui eu pego a data que o cara digitou e mando para o DAO
if (fechamento != null) {
guicontrol.painelFechamento.setVisible(true);
guicontrol.painelConsultaFechamento.setVisible(false);
guicontrol.painelBotoesConsultaFechamento.setVisible(true);
setResultConsultaFechamento(fechamento);
}
Bom este trecho acima é a chamada para o DAO. O código abaixo é já na classe de cadastro.
public Fechamento consultaFechamento(Date dateCodConsulta){
Fechamento fechamento = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // aqui formato a data para padrão sql
java.sql.Date Data = java.sql.Date.valueOf(sdf.format(dateCodConsulta)); // aqui formato a data para padrão sql
Connection con = (Connection) Conexao.abrirConexao();
String sql="SELECT * FROM fechamento WHERE data="+Data;
PreparedStatement stmt;
try {
stmt = (PreparedStatement) con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
if(!(rs.next())){
return fechamento = null; // não importa se tem registro, sempre cai aqui. Mesmo a data estando correta e compativel.
}
else { // fechamento encontrado
fechamento = new Fechamento();
fechamento.setDateDataFechamento(rs.getDate("data"));
fechamento.setIntImersaoF(rs.getInt("ImersaoF"));
fechamento.setIntImersaoM(rs.getInt("ImersaoM"));
fechamento.setIntPerolaF(rs.getInt("PerolaF"));
fechamento.setIntPerolaM(rs.getInt("PerolaM"));
rs.close();
stmt.close();
}
} catch (SQLException ex) {
Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
System.out.println(ex.getMessage());
}
return fechamento;
}
Bom galera é isto, não to conseguindo voltar este registro. Tá complicado memo!!
Abraços!