Erro no update

2 respostas
bancojava
A
Estou fazendo um projeto de atualizar imposto, na parte do select para fazer a requisição e comparar com o banco está tudo ok, porém o update que não está dando muito certo.

public void alterarImposto() throws SQLException {

Retorno retorno = new Retorno();
double nacional = Double.parseDouble(retorno.getNacional());
    double importado = Double.parseDouble(retorno.getImportado());
    double estadual = Double.parseDouble(retorno.getEstadual());
    double municipal = Double.parseDouble(retorno.getMunicipal());
    int codigo = Integer.parseInt(retorno.getCodigo());
    try {
        ps = conexao
                .prepareStatement("UPDATE TABELAIBTP "
                        + "SET ALIQNAC = ?, ALIQIMP = ?, ALIQESTADUAL = ?, ALIQMUNICIPAL = ? "
                        + "WHERE CODIGONCM = ?");

        ps.setDouble(1, nacional);
        ps.setDouble(2, importado);
        ps.setDouble(3, estadual);
        ps.setDouble(4, municipal);
        ps.setInt(5, codigo);

        ps.executeUpdate();
    } catch (SQLException ex) {
        throw new SQLException("Erro alterarImposto: " + ex.getMessage());
    }
}
O Update está assim, agora a main  esta desta forma.

public static void main(String[] args) throws SQLException {

NcmDAO ncmD = new NcmDAO();

int codigo = 0;
for (ncmMOD ncm : ncmD.carregarTeste()) {
        if (!"".equals(ncm.getCodigo())) {
            codigo = Integer.parseInt(ncm.getCodigo());

        }
        if (codigo < 9999999) {
            ncm.setCodigo("0" + ncm.getCodigo());
        }
        
        Client client = ClientBuilder.newClient();
        Response response = client.target("https://apidoni.ibpt.org.br/api/v1/produtos?"
                + "token=" + ncm.getToken()
                + "&cnpj=" + ncm.getCnpj()
                + "&codigo=" + ncm.getCodigo()
                + "&uf=" + ncm.getUF()
                + "&ex=" + ncm.getEX()
                + "&descricao=" + ncm.getDescricao()
                + "&unidadeMedida=" + ncm.getUnidadeMedida()
                + "&valor=" + ncm.getValor()
                + "&gtin=" + ncm.getGtin())
                .request(MediaType.APPLICATION_JSON)
                .get();

        String s = response.readEntity(String.class);

        Gson gson = new GsonBuilder().create();
        Type collectionType = new TypeToken<Retorno>() {
        }.getType();

        Retorno r = gson.fromJson(s, collectionType);
       
        ncmD.alterarImposto();
        System.out.println("Imposto alterado com sucesso");
        System.out.println("-------------------------------------------------------------------------");
        
        
    }

}
O erro em questão

Exception in thread main java.lang.NullPointerException

at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)

at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)

at java.lang.Double.parseDouble(Double.java:538)

at dao.NcmDAO.alterarImposto(NcmDAO.java:55)

at com.softcom.produtoncm.Teste.main(Teste.java:52)

2 Respostas

B

na linha 55, qual valor que está chegando?

A

acredito eu que achei o problema, eu vi que no banco o primeiro valor que retorna é uma String " ", logo " " não pode transformar em inteiro e assim da o erro.

Criado 4 de maio de 2018
Ultima resposta 4 de mai. de 2018
Respostas 2
Participantes 2