continue running when der Duplicate key, how to proceed?

Asked

Viewed 22 times

1

I’ve got nine tests on every procedure, but at some point the guy saved one of those null tests, but it’s possible he could save null, because it might be that these tests aren’t applicable to that situation... But for some reason he did not fill out a test that should have been filled out and ended up saving without this test. To fix this situation, I created a new table where it saves all tests, but if the test code is already saved, it will not replace, but if it is not in this table, it will save. But a problem has arisen, if the first test is already on the test table, it already from Duplicate key and does not even try to save the others.. someone can tell me how to make him, keep testing the other tests to see if he exists or not?

For example: when giving Duplicate key, it continues the code and does not stop

Follows the code:

       int p = JOptionPane.showConfirmDialog(null, "Você deseja realmente salvar?", "Salvar", JOptionPane.YES_NO_OPTION);
        if (p
                == 0) {
            String resultado_numerico = new String();
            String resultado_texto = new String();
            String observacao = new String();
            String aprovado = new String();
            try {
                Class.forName(Auxiliar.AcessoBanco.getDriver());
                Connection con = DriverManager.getConnection(Auxiliar.AcessoBanco.getUrl(), Auxiliar.AcessoBanco.getUser(), Auxiliar.AcessoBanco.getPass());
                for (int i = 0; i < CadresultadoTabela.getRowCount(); i++) {

                    if ((resultado_numerico.equals("") || resultado_texto.equals("")) && aprovado.equals("")) {

                        java.util.Date currentDate = GregorianCalendar.getInstance().getTime();
                        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
                        String dateString = df.format(currentDate);

                        java.util.Date d = new java.util.Date();
                        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
                        String timeString = sdf.format(d);
                        String value0 = timeString;
                        String values = dateString;
                        String sql = "INSERT INTO Resultado (ORDEM,LINHA,LINHA_TIPO,LINHA_SETOR,RCPERFIL,BPCS,"
                                + "DPERFIL,PROJETO,OEM,N_DESENHO,N_PLANO,OPERACAO,EQUIPAMENTO,DTESTE,"
                                + "RCOMPLEMENTO,RCTESTE,ESPEC_MIN,ESPEC_MAX,ESPEC_UNID,ESPEC_TEXTO,REFERENCIA,"
                                + "FREQUENCIA,FREQ_UNID,PRODUTO,ORIGEM,RTIPO,ESPECIFICACAO,FREQ_TEXTO,LAB,"
                                + "ENCONTRADO,ENCONT_TEXTO,OBS,APROVADO,DATA,HORA,REGISTRO,N_OP,BATCH,N_ETIQUETA,DATAM) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'" + values + " " + value0 + "')";
                        PreparedStatement pst = con.prepareStatement(sql);

//                System.out.println();
                        int Ordem = Integer.parseInt(CadresultadoTabela.getValueAt(i, 1).toString());//1
                        String Linha = (CadresultadoTabela.getValueAt(i, 2).toString());//2
                        String Linha_Tipo = (CadresultadoTabela.getValueAt(i, 3).toString());//3
                        String Setor = (CadresultadoTabela.getValueAt(i, 4).toString());//4
                        int Perfil = Integer.parseInt(CadresultadoTabela.getValueAt(i, 5).toString());//5
                        String Bpcs = (CadresultadoTabela.getValueAt(i, 6).toString());//6
                        String Desc_Perfil = (CadresultadoTabela.getValueAt(i, 7).toString());//7
                        String Projeto = (CadresultadoTabela.getValueAt(i, 8).toString());//8
                        String OEM = (CadresultadoTabela.getValueAt(i, 9).toString());//9
                        String Nº_Desenho = (CadresultadoTabela.getValueAt(i, 10).toString());//10
                        String Nº_Plano = (CadresultadoTabela.getValueAt(i, 11).toString());//11
                        String Operação = (CadresultadoTabela.getValueAt(i, 12).toString());//12
                        String Equipamento = (CadresultadoTabela.getValueAt(i, 13).toString());//13
                        String Desc_Teste = (CadresultadoTabela.getValueAt(i, 14).toString());//14
                        String Complemento = (CadresultadoTabela.getValueAt(i, 15).toString());//15
                        String Cod_Teste = (CadresultadoTabela.getValueAt(i, 16).toString());//16
                        float Espec_Min = Float.parseFloat(CadresultadoTabela.getValueAt(i, 17).toString());//17
                        float Espec_Max = Float.parseFloat(CadresultadoTabela.getValueAt(i, 18).toString());//18
                        String Espec_Unid = (CadresultadoTabela.getValueAt(i, 19).toString());//19
                        String Espec_Texto = (CadresultadoTabela.getValueAt(i, 20).toString());//20
                        String Referência = (CadresultadoTabela.getValueAt(i, 21).toString());//21
                        int Frequência = Integer.parseInt(CadresultadoTabela.getValueAt(i, 22).toString());//22
                        String Freq_Unid = (CadresultadoTabela.getValueAt(i, 23).toString());//23
                        String Produto = (CadresultadoTabela.getValueAt(i, 24).toString());//24
                        String Origem = (CadresultadoTabela.getValueAt(i, 25).toString());//25
                        String Tipo = (CadresultadoTabela.getValueAt(i, 26).toString());//26
                        String Especificação = (CadresultadoTabela.getValueAt(i, 27).toString());//27
                        String Freq_Texto = (CadresultadoTabela.getValueAt(i, 28).toString());//28
                        String Laboratorio = (CadresultadoTabela.getValueAt(i, 29).toString());//29
                        String Resultado_Numerico = resultado_numerico;//30
                        String Resultado_Texto = resultado_texto;//31
                        String Observação = observacao;//32
                        String Aprovado = aprovado;//33

                        pst.setInt(1, Ordem);//1
                        pst.setString(2, Linha);//2
                        pst.setString(3, Linha_Tipo);//3
                        pst.setString(4, Setor);//4
                        pst.setInt(5, Perfil);//5
                        pst.setString(6, Bpcs);//6
                        pst.setString(7, Desc_Perfil);//7
                        pst.setString(8, Projeto);//8
                        pst.setString(9, OEM);//9
                        pst.setString(10, Nº_Desenho);//10
                        pst.setString(11, Nº_Plano);//11
                        pst.setString(12, Operação);//12
                        pst.setString(13, Equipamento);//13
                        pst.setString(14, Desc_Teste);//14
                        pst.setString(15, Complemento);//15
                        pst.setString(16, Cod_Teste);//16
                        pst.setFloat(17, Espec_Min);//17
                        pst.setFloat(18, Espec_Max);//18
                        pst.setString(19, Espec_Unid);//19
                        pst.setString(20, Espec_Texto);//20
                        pst.setString(21, Referência);//21
                        pst.setInt(22, Frequência);//22
                        pst.setString(23, Freq_Unid);//23
                        pst.setString(24, Produto);//24
                        pst.setString(25, Origem);//25
                        pst.setString(26, Tipo);//26
                        pst.setString(27, Especificação);//27
                        pst.setString(28, Freq_Texto);//28
                        pst.setString(29, Laboratorio);//29
                        pst.setString(30, Resultado_Numerico);//30
                        pst.setString(31, Resultado_Texto);//31
                        pst.setString(32, Observação);//32
                        pst.setString(33, Aprovado);//33

                        pst.setString(34, txt_data.getText());
                        pst.setString(35, txt_hora.getText());
                        pst.setString(36, txt_registro.getText());
                        pst.setString(37, txt_operacao.getText());
                        pst.setString(38, txt_batch.getText());
                        pst.setString(39, txt_N_Etiqueta.getText());

                        pst.executeUpdate();

                    }

                }

                JOptionPane.showMessageDialog(null, "Salvo com sucesso!");

            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
  • Which bank are you using? Try adding ON CONFLICT DO NOTHING at the end of the INSERT clause

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.