@Override
    public Competicao put(String key, Competicao value) {
        try {
            int i = 0;
            Competicao al = null;
            try (Statement stm = conn.createStatement()) {

                if (value.getClass().getName().equals("Competicao.Eliminatorias")) {
                    i = stm.executeUpdate("Update  Torneio set Cod_Torneio='" + value.getCod_competicao() + "' WHERE Cod_Torneio='" + key + "'");
                    i += stm.executeUpdate("Update  Competicao set Cod_Competicao='" + value.getCod_competicao() + "',Nome='" + value.getNome() + "',Escalao='" + value.getEscalao().toString() + "', Ano=to_number('" + value.getAno() + "') WHERE Cod_Competicao='" + key + "'");
                    if (i == 0) {
                        String sql = "INSERT INTO Competicao(Cod_Competicao,Nome,Escalao,Ano) VALUES('" + value.getCod_competicao() + "','" + value.getNome() + "','" + value.getEscalao().toString() + "',to_number('" + value.getAno() + "'))";
                        i = stm.executeUpdate(sql);
                        sql = "INSERT INTO Torneio(Cod_Torneio,tipoCompeticao,tipotorneio) VALUES('" + value.getCod_competicao() + "',to_number('1'),to_number('0'))";
                        stm.executeUpdate(sql);
                        stm.close();
                        return value;
                    } else {
                        return value;
                    }
                } else {
                    if (value.getClass().getName().equals("Competicao.EliminatoriaDupla")) {
                        i = stm.executeUpdate("Update  Torneio set Cod_Torneio='" + value.getCod_competicao() + "' WHERE Cod_Torneio='" + key + "'");
                        i += stm.executeUpdate("Update  Competicao set Cod_Competicao='" + value.getCod_competicao() + "',Nome='" + value.getNome() + "',Escalao='" + value.getEscalao().toString() + "', Ano=to_number('" + value.getAno() + "') WHERE Cod_Competicao='" + key + "'");
                        if (i == 0) {
                            String sql = "INSERT INTO Competicao(Cod_Competicao,Nome,Escalao,Ano) VALUES('" + value.getCod_competicao() + "','" + value.getNome() + "','" + value.getEscalao().toString() + "',to_number('" + value.getAno() + "'))";
                            i = stm.executeUpdate(sql);
                            sql = "INSERT INTO Torneio(Cod_Torneio,tipoCompeticao,tipotorneio) VALUES('" + value.getCod_competicao() + "',to_number('1'),to_number('1'))";
                            stm.executeUpdate(sql);
                            stm.close();
                            return value;
                        } else {
                            return value;
                        }
                    }
                    i = stm.executeUpdate("Update  Campeonato set Cod_Campeonato='" + value.getCod_competicao() + "' WHERE Cod_Campeonato='" + key + "'");
                    i += stm.executeUpdate("Update  Competicao set Cod_Competicao='" + value.getCod_competicao() + "',Nome='" + value.getNome() + "',Escalao='" + value.getEscalao().toString() + "',Ano=to_number('" + value.getAno() + "') WHERE Cod_Competicao='" + key + "'");
                    
                    if (i == 0) {
                        String sql1 = "INSERT INTO Competicao(Cod_Competicao,Nome,Escalao,Ano) VALUES('" + value.getCod_competicao() + "','" + value.getNome() + "','" + value.getEscalao().toString() + "',to_number('" + value.getAno() + "'))";
                        i = stm.executeUpdate(sql1);
                        sql1 = "INSERT INTO Campeonato(Cod_Campeonato,TipoCompeticao) VALUES('" + value.getCod_competicao() + "',to_number('0'))";
                        stm.executeUpdate(sql1);
                        stm.close();
                        return value;
                    } else {
                        return value;
                    }

                }

            }

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
            return null;
        }
    }