Duvida com trazer data e registro sql

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!

http://guj.com.br/posts/list/207902.java#1057584
ve se ajuda

Então se você perceber eu já faço isto no código, mas o meu problema que mesmo com a formatação da data certo, quando eu faço a consulta ele me responde null, sendo que tem a data que eu coloquei pra fazer a consulta.

Entendeu!?

cara, se o retorno é null, então ele não ta retornando nada, null significa nada, se houvesse registro, e ele não estivesse conseguindo colocar ele na variavel, eledaria alguma exception de casting

to ligado brother… o meu caso eh que seguinte:

A data que está indo para consulta, consta no BD, mas ele retorna null na consulta do mesmo jeito, mesmo estando do formato aceito sql, e quando debugo eu vejo que realmente é a data que eu quero e mesmo assim retorna null.

Entendeu!? Eu naum sei pq ta voltando null, uma vez que consta o registro, e está certo o sql

entendi, e notei uma coisa no teu SQL

Date dentro do sql tem que estar entre ’ ’
você não ta passando assim, ta passando a data direto.

tenta colocar aí

String sql="SELECT * FROM fechamento WHERE data='"+Data+"'"; 

[quote=andre.froes]entendi, e notei uma coisa no teu SQL

Date dentro do sql tem que estar entre ’ ’
você não ta passando assim, ta passando a data direto.

tenta colocar aí

String sql="SELECT * FROM fechamento WHERE data='"+Data+"'"; [/quote]

cara vc eh um anjo!!

ahuahuauah

acertou…estava esquecendo das aspas… aaafff q erro noob…

obrigado!!!

to fazendo este trabalho deste as 8 da manha… por isso… ehehehe…vai chegando a noite eu to ficando noob jah…

abraços e obrigado…

moderador…resolvido aki…

^^