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 já 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()
+ ">in=" + 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)