Checar se há registro no BD e retornar mensagem de existência

No meu caso estou inserindo informações no BD, mas não quero que o usuário insira duas informações com o mesmo nome. Só que quero fazer isso dentro do DAO, onde o código está assim:

public void inserir(NomeOrc nomeOrc){
    conectar(); 
	
    String sql = "SELECT * FROM NOME_ORCAMENTO WHERE NO_NOME = '"+getNomeOrc+"';"
            
            + " INSERT INTO NOME_ORCAMENTO (NO_NOME, NO_OBS) VALUES ("
            + "'"+nomeOrc.getNomeOrc()+"',"
            + "'"+nomeOrc.getObs()+"')";
   
    try{
        comando.executeUpdate(sql);
        JOptionPane.showMessageDialog(null, "Nome e/ou observação de orçamento cadastrado com sucesso!", "Mensagem do Sistema", 1);
    }catch(SQLException e){
        JOptionPane.showMessageDialog(null, "Erro ao cadastrar o nome do Orçamento! Erro:"+e.getMessage(), "Erro do Sistema", 0);
    }finally{
        fechar();
    }
}

Depois do select eu queria fazer uma condição, se ele retornar resultado, pede pra ele colocar outro nome, mas se não existir insere normalmente. Alguém sabe como faço isso?

Obrigado, desde já agradeço!

Olá amigo,

Sugiro que faça um count como no exemplo (Checar se há registro no BD e retornar mensagem de existência) antes mesmo de chamar o método inserir.

Caso retorno um inteiro maior que zero você pode tratar dizendo que já existe. Caso não, chame o método inserir.

1 curtida

@edumatias, qual exemplo?

Mas ok! Disso eu devo usar um IF ou o try-catch? Pois, essa verificação tem que me retornar um resultado, desse resultado eu pensei em usar boolean, mas não estou sabendo como usar!

Poderia me esclarecer?

Por que você não coloca esta coluna como unique?
Seria mais fácil e evitaria algumas linhas de comando.

1 curtida

Vc esta concatenando as String?? como assim…
Não é melhor vc fazer a busca, se o valor for encontrado, retorna o valor ao metodo que a chamou;
Caso nao encontrado retorne chama outro metodo de inserção…

Desculpe, colei o link errado.

Nesse link tem uma exemplo.

Você chama um método count (public int count(NomeOrc nomeOrc) passando como parametro o nome que vai ser inserido. Se o count encontrar algo vai lhe retornar 1.

Se retornar 1 é porque este nome já existe. Ai você pode tratar e retornar uma mensagem. Se retornar zero você chamar esse seu método inserir.