Verificar se há campos em branco

8 respostas
S

pessoal possuo um metodo de alteração no meu pacote dao... e dps chamo esse metodo no controle... preciso que meu controle fique sabendo se tem algum campo em branco e exibir uma mensagem ( todos os campos devem ser preenchidos).

meu pacote dao:

public boolean Alterar(DomainObject domainObject) {

        try {


            String sql =
                    "UPDATE ocorrencia SET descricao=?,data_ocorrencia=?,servico=?,placa=?,nomecliente=? where idocorrencia=?";
            Connection conn = Conexao.getConnection();

            Ocorrencia ocorrencia = (Ocorrencia) domainObject;

            PreparedStatement pst = conn.prepareStatement(sql);

            pst.setString(1, ocorrencia.getDescricao());
            pst.setString(2, ocorrencia.getData());

            pst.setString(3, ocorrencia.getServicos().getDescricaoServ());

            pst.setString(4, ocorrencia.getVeiculo().getPlaca());


          pst.setString(5, ocorrencia.getCliente().getNomecli());

            pst.setInt(6, ocorrencia.getIDOcorrencia());



            //Executando a sql
            pst.execute();

            //Fechando o tratamento da sql
            pst.close();

        
        } catch (Exception e) {
      

            return false;
        }
        return true;
    }

Aqui é meu controle

public boolean Alterar(DomainObject domainObject){
IDAOocorrencia dao = new DAOOcorrencia();

if (dao.Alterar(domainObject)) {
            JOptionPane.showMessageDialog(null,"Alterado com Sucesso!");
        } else {
        JOptionPane.showMessageDialog(null,"Alteração no pode ser Realizada");

        }
return false;

preciso que ele exiba uma mensagem caso haja algum campo nulo.

8 Respostas

L

Oi,

O correto seria ao criar as tabelas do seu banco, especificar os campos nullos e não nullos.

Se for tratar no JAVA, poderá lançar os exception:

try { if (campo == null) { throw new Exception("Compo não deve ser null"); } } catch (Exception ex) { throw ex; }

E quem chamar a validação trata-los.

Tchauzin!

S

Legal mais tp assim.... eh meu controle que vai tratar isso, sendo que meus campos estão todos no pacote dao.

como eu faria?

aki esta os codigos:

DAO:

ublic class DAOOcorrencia implements IDAOocorrencia {

    private Connection conn;

    public boolean inserirOcorrencia(DomainObject domainObject) {
        Ocorrencia ocorrencia = (Ocorrencia) domainObject;

        try {
            Connection conn = Conexao.getConnection();



            //Criando a string com sql a ser executada
            String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?)";

            //Tratando a sql  a ser executada
            PreparedStatement pst = conn.prepareStatement(sql);
            //Definindo o primeiro parâmetro

            pst.setInt(1, ocorrencia.getIDOcorrencia());


            pst.setString(2, ocorrencia.getDescricao());



            //Definindo o segundo parâmetro
            pst.setString(3, ocorrencia.getData());

            pst.setString(4, ocorrencia.getServicos().getDescricaoServ());




            pst.setString(5, ocorrencia.getVeiculo().getPlaca());


            pst.setString(6, ocorrencia.getCliente().getNomecli());
            //Executando a sql
            int valor = pst.executeUpdate();
            if (valor != 0) {
            } else {
 
            }
            //Fechando o tratamento da sql
            pst.close();

            //Fechando a conexão
            conn.close();


        } catch (Exception e) {
            return false;
        }
        return true;

    }

aki eh meu controle

public class Fachadaocorrencia implements IFachadaOcorrencia {
public boolean inserirOcorrencia(DomainObject domainObject){


        IDAOocorrencia dao = new DAOOcorrencia();

        // Fazendo um cast do parâmetro recebido para o tipo Cliente
     


        
        
        if (dao.inserirOcorrencia(domainObject)) {
            JOptionPane.showMessageDialog(null,"SALVO");
        } else {
        

        }
return false;
L

Oi,

Então... ficaria + ou - assim:

public class DAOOcorrencia implements IDAOocorrencia {

    private Connection conn;

    public boolean inserirOcorrencia(DomainObject domainObject) throws Exception {
        Ocorrencia ocorrencia = (Ocorrencia) domainObject;

        try
        {
             // Coloque todos os campos aqui, fazendo a verificação...
             if (ocorrencia.getIDOcorrencia() == null || ocorrencia.getDescricao() == null)
             {
                throw new Exception("Campos não podem ser null.");
             }
             else {
             
                Connection conn = Conexao.getConnection();

               //Criando a string com sql a ser executada
               String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?)"; 

               //Tratando a sql  a ser executada
               PreparedStatement pst = conn.prepareStatement(sql);
               //Definindo o primeiro parâmetro

               pst.setInt(1, ocorrencia.getIDOcorrencia());
               pst.setString(2, ocorrencia.getDescricao());
               //Definindo o segundo parâmetro
               pst.setString(3, ocorrencia.getData());
               pst.setString(4, ocorrencia.getServicos().getDescricaoServ());
               pst.setString(5, ocorrencia.getVeiculo().getPlaca());
               pst.setString(6, ocorrencia.getCliente().getNomecli());
               //Executando a sql
               int valor = pst.executeUpdate();
               if (valor != 0) {
               } 
               else {
               }
               
               //Fechando o tratamento da sql
               pst.close();

               //Fechando a conexão
               conn.close();              
             }
        }
        catch (Exception e) {
          throw e;
        }

       return true;
    }
}

e o método que chama esse:

public class Fachadaocorrencia implements IFachadaOcorrencia {
public boolean inserirOcorrencia(DomainObject domainObject){


        IDAOocorrencia dao = new DAOOcorrencia();

        // Fazendo um cast do parâmetro recebido para o tipo Cliente   
     
        try {        
            if (dao.inserirOcorrencia(domainObject)) {
                 JOptionPane.showMessageDialog(null,"SALVO");
            } 
            else {
            }
        }
        catch(Exception ex) 
        {
            JOptionPane.showMessageDialog(null,ex.getMessage());
        }
return false;

Tchauzin!

V

para com isso, vai validar os campos obrigatorios na ultima camada? em persistencia? apesar do hibernate fornecer esse recurso não gosto e não utilizo.

Eu utilzo Struts e valido isso na primeira camada de submit, é só criar um arquivo xml com as validações que precisar.

http://struts.apache.org/2.x/docs/validation.html

S

Legal esse jeito… e se eu fosse fazer a validação no meu controle?

V

caso não utilize nenhum framework, pode ser, sera da mesma forma lina te explicou na camada de persistencia.

Esse tipo de validação, como campos obrigatorios seria legal fazer no cliente, para evitar tempo de submit desnecessario, o problema que tera que validar duas vezes uma no cliente via java script e outro em controle caso o usuario desabilite o javascript.

A vantagem de se utilizar um framework como struts 2 ou webwork é que voce valida somente uma vez com o xml, e ele gera automaticamente a validação na camada de controle e no cliente com javascript.

V

foi mau velho, agora que vi que esta fazendo com swing, desconsidere os frameworks que recomendei, não sei se tem como utilizar pra sua situação.

S

BLz cara… eh pq todo tipo de validação tem que ser feito no controle

Criado 9 de outubro de 2009
Ultima resposta 13 de out. de 2009
Respostas 8
Participantes 3