[RESOLVIDO ] Erro no select

5 respostas
F
public ApontamentoLiberacaoCarga existeApontamentoCarregada(int cod_carga) {
        ApontamentoLiberacaoCarga liberacao = new ApontamentoLiberacaoCarga();
        try {
            conex.conectar();
            Statement query = conexao.conn.createStatement();
            ResultSet resultado = query.executeQuery("SELECT * "
                    + "FROM TI_apt_cargas_lib_test "
                    + "WHERE cod_carga='"+cod_carga+"';");
            if (resultado.next()) {
                liberacao.setCod_carga(resultado.getInt(1));
                liberacao.setData_liberacao(resultado.getDate(2));
                liberacao.setData_carregada(resultado.getDate(3));
                liberacao.setUsuario_liberacao(resultado.getString(4));
                liberacao.setUsuario_carregada(resultado.getString(5));
            } else {
                liberacao = null;
            }
            conex.fechar_resultset(resultado);
            query.close();
            return liberacao;
        } catch(SQLException e) {
            System.out.println("OXI");
            System.out.println(e);
            
            return null;
        }
    }

Galera o que estou errando no meu select, o erro que retorna e este…

java.sql.SQLException: Can’t convert to: Date

5 Respostas

gilsonk

.

charleston10
felipeti:
public ApontamentoLiberacaoCarga existeApontamentoCarregada(int cod_carga) {
        ApontamentoLiberacaoCarga liberacao = new ApontamentoLiberacaoCarga();
        try {
            conex.conectar();
            Statement query = conexao.conn.createStatement();
            ResultSet resultado = query.executeQuery("SELECT * "
                    + "FROM TI_apt_cargas_lib_test "
                    + "WHERE cod_carga='"+cod_carga+"';");
            if (resultado.next()) {
                liberacao.setCod_carga(resultado.getInt(1));
                liberacao.setData_liberacao(resultado.getDate(2));
                liberacao.setData_carregada(resultado.getDate(3));
                liberacao.setUsuario_liberacao(resultado.getString(4));
                liberacao.setUsuario_carregada(resultado.getString(5));
            } else {
                liberacao = null;
            }
            conex.fechar_resultset(resultado);
            query.close();
            return liberacao;
        } catch(SQLException e) {
            System.out.println("OXI");
            System.out.println(e);
            
            return null;
        }
    }

Galera o que estou errando no meu select, o erro que retorna e este..

java.sql.SQLException: Can't convert to: Date

Dica: Utilize PrepareStatement <<<<<<<<<<<------------------------------------------ padronização.. ;]

Sobre o erro isso quer dizer que vc ta setando um valor que não é do tipo Date ou o inverso.. setando uma variavel que é Date, mas passando outro tipo de dados..

vê aí...

A

Um dos erros na sua consulta é o uso de ; no final

Altere para o código abaixo e veja se isso resolve:

ResultSet resultado = query.executeQuery("SELECT * "  
                + "FROM TI_apt_cargas_lib_test "  
                + "WHERE cod_carga='"+cod_carga+"'");

Depois siga a recomendação do post acima, sempre tente usar PreparedStatment, isso é para evitar injeção de SQL.

[]s

DaniloAndrade

Boa tarde!

nesse caso pode ser varias coisas

a coluna da tabela pode ser de uma string, int , decimal e no resultset ele ta dando um getDate(). que gera a exception

mas acredito que a query esteja errada

vc esta dando SELECT * FROM TI_apt_cargas_lib_test e ta fazendo a busca pelo índice do retorno, mas dessa forma não tem como saber se o que esta no índice 2 por exemplo é realmente uma data “resultado.getDate(2)”… eu a concelho você alterar sua query colocando os campos do retorno no select ou busca no resultset pelo nome da coluna ao em vez do índice
ex: resultado.getDate(“data_nasc”) onde data_nasc é o nome da coluna do tipo date da sua tabela

F

Consegui resolver, o problema era que estava passando um codigo de carga String, e o no banco o codigo de carga é int…

Criado 8 de janeiro de 2013
Ultima resposta 11 de jan. de 2013
Respostas 5
Participantes 5