Função verifica dados iguais

Prezados, bom dia.

Sou novo em programação, e quero uma ajuda de vocês para analisar uma função que criei, uma função para verificar dados iguais, e não deixar fazer a inserção desses dados. Tenho um box carregado com países, e uma jTable que é carregada com os estados de acordo com o país selecionada no box, porém se o pais BRASIL existe o estado A, com a uf A e se for cadastrar A e uf A para outro pais a função esta bloqueando o cadastro, segue meu código:

public boolean verificaDadosIguais(String N, String U, int codPais){

    boolean dadosIguais = false;
    
    String nomeBanco = "";
    String ufBanco = "";
    int idPaisBanco = 0;

    try
    {
        Connection con = Conexao.getConnetion();
        Statement stmt;
        ResultSet rs;

        String sql = "SELECT * FROM estado;";
        stmt = con.createStatement();
        rs   = stmt.executeQuery(sql);
        
        if(qtdLinhasTabela>=1)
        {
            rs.first();
            nomeBanco = rs.getString("nome");
            ufBanco = rs.getString("uf");
            idPaisBanco = rs.getInt("paisIdPais");
        }

        if(nomeBanco.equals(N) && ufBanco.equals(U) && (codPais==idPaisBanco))
        {
            JOptionPane.showMessageDialog(null, "OS DADOS QUE VOCÊ ESTÁ TENTANDO INSERIR "
                                              + "JÁ SÃO EXISTENTES NO BANCO.", "DUPLICIDADE DE DADOS", JOptionPane.WARNING_MESSAGE);

            dadosIguais = true;
            rs.close();
        }
        else
        {
           while(rs.next())
           {
               if(N.equals(rs.getString("nome")) && U.equals(rs.getString("uf")) && (idPaisBanco == codPais))
               {
                   JOptionPane.showMessageDialog(null, "OS DADOS QUE VOCÊ ESTÁ TENTANDO INSERIR "
                                              + "JÁ SÃO EXISTENTES NO BANCO.", "DUPLICIDADE DE DADOS", JOptionPane.WARNING_MESSAGE);

                   dadosIguais = true;
                   break;
               }
           }   
        }
    }   
    catch (SQLException ErroSql)
    {
        JOptionPane.showMessageDialog(null, "ERRO NA FUNÇÃO verificaDadosIguais();", 
                                    "ERRO DE SISTEMA.", JOptionPane.ERROR_MESSAGE);
    }

    return dadosIguais;
}

pq invés de vc criar uma função pra isso, vc num cria uma chave unica na tabela no banco, pense nisso…

Desculpe, mais como assim, chave única? não sei muito sobre banco de dados…

Estava lendo aqui, no bd que eu utilizo, workbench habilita para um dos atributos da tabela a função unique, e realmente faz o que você falou, muito obrigado.