É possivel?

18 respostas
Sonkinha

É possível fazer uma mensagem de erro se algo não foi inserido corretamente na BD ou se não foi sequer inserido?
Por exemplo:

String Aa=request.getParameter("Aa");
tring Bb=request.getParameter("Bb");
String Cc=request.getParameter("Cc");

if (dadosinseridoscorretamente){
st = conn.createStatement();
xt = "Insert into tabela (A, B, C) values ('"+Aa+"', '"+Bb+"', '"+Cc+"');";
out.println("Registo concluido com sucesso!!");
st.executeUpdate(xt);
conn.close();}

else{
out.println("Dados inseridos incorretamente!! Volte a tentar");}

TEm algo assim? É sequer possível?

18 Respostas

brunorota

Tem sim

É só você manipular as exceções que são lançadas. No bloco catch você escreve um System.out.println(“ERRO. Dado não inserido com sucesso!”);

E em baixo, mas fora do bloco catch você escreve um System.out.println(“Dado inserido com sucesso!”);

Valeww

Roger75

Por isso que existe try catch.

brunorota

Coloque o código todo da inserção, eu sei que tem um bloco try/catch porém não lembro qual, cole o código aqui que eu te explico como funciona

Valew

newbcc

Olá,

do jeito que você fez, funciona, porém, não será exibido para o usuário do seu sistema e sim, será exibido nos logs do servidor que você estiver usando para executar sua aplicação.

Se for uma aplicação web, o quê você pode fazer é tratar essas condições para exibir na sua tela. Por exemplo, se ocorrer uma exceção (que poderá acontecer em alguma situação não esperada nas operações com o banco de dados), você pode capturar usando o bloco try/catch, colocar essa mensagem na sua request para ser usada na tela.

O mesmo caso você faria para exibir uma mensagem de sucesso; se não ocorreu exceção, provavelmente seu registro foi inserido e nenhum erro aconteceu.

Pegou a idéia!?

Abs!

Sonkinha

Podiam me dar um exemplo de como fazer? Sou novato em java e não percebo muito disso ainda.

brunorota

Já pedi pra vc colcar a parte do seu código de inserção, com certeza precisa ter algum bloco try/catch para isso, pois tais métodos possuem exceções checadas, só não me lembro qual é

Cole o seu código que nós podemos ajudar melhor

Sonkinha

brunorota:
Já pedi pra vc colcar a parte do seu código de inserção, com certeza precisa ter algum bloco try/catch para isso, pois tais métodos possuem exceções checadas, só não me lembro qual é

Cole o seu código que nós podemos ajudar melhor


Código de inserção vc quer dizer o formulário?
Ou quer dizer o código verdadeiro em vez de ter estes “Aa” e “Bb” …
Vou por ele ae.

Sonkinha
<%
            String NomeUsuario=request.getParameter("NomeUsuario");
            String Pass=request.getParameter("Pass");
            String Email=request.getParameter("Email");
            String PrimeiroNome=request.getParameter("PrimeiroNome");
            String UltimoNome=request.getParameter("UltimoNome");
            String Idade=request.getParameter("Idade");
            String Morada=request.getParameter("Morada");
            String Localidade=request.getParameter("Localidade");
            String CodigoPostal=request.getParameter("CodigoPostal");
            String NumeroCelular=request.getParameter("NumeroCelular");
            java.sql.Connection conn = null;

            String url = "jdbc:mysql://localhost:3306/coiso";
            String user = "root";
            String password = "123";
            Statement st;
            String xt;

            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, user, password);
                
            st = conn.createStatement();
            xt = "Insert into registodeclientes (NomeUsuario, Pass, Email, PrimeiroNome, UltimoNome, Idade, Morada, Localidade, CodigoPostal, NumeroTelemovel) values ('"+Nomeusuario+"', '"+Pass+"', '"+Email+"', '"+PrimeiroNome+"', '"+UltimoNome+"', '"+Idade+"', '"+Morada+"', '"+Localidade+"', '"+CodigoPostal+"', '"+NumeroCelular+"');";
            out.println("Registo concluido com sucesso!!");
            st.executeUpdate(xt);
            conn.close();}%>
brunorota

Fica ± assim

try{

Class.forName("com.mysql.jdbc.Driver");  
           conn = DriverManager.getConnection(url, user, password);  
                 
           st = conn.createStatement();  
           xt = "Insert into registodeclientes (NomeUsuario, Pass, Email, PrimeiroNome, UltimoNome, Idade, Morada, Localidade, CodigoPostal, NumeroTelemovel) values ('"+Nomeusuario+"', '"+Pass+"', '"+Email+"', '"+PrimeiroNome+"', '"+UltimoNome+"', '"+Idade+"', '"+Morada+"', '"+Localidade+"', '"+CodigoPostal+"', '"+NumeroCelular+"');";  
           out.println("Registo concluido com sucesso!!");  
           st.executeUpdate(xt);  

catch(Exception e){
System.out.println("ERRO. FALHA NA INSERÇÃO DOS DADOS");
}
           conn.close();

System.out.println("DADOS INSERIDOS COM SUCESSO!");
}%>

Falows

sephil

O conn.close() também lança um SQLException e deve estar dentro do bloco try

try{  
  
Class.forName("com.mysql.jdbc.Driver");    
           conn = DriverManager.getConnection(url, user, password);    
                   
           st = conn.createStatement();    
           xt = "Insert into registodeclientes (NomeUsuario, Pass, Email, PrimeiroNome, UltimoNome, Idade, Morada, Localidade, CodigoPostal, NumeroTelemovel) values ('"+Nomeusuario+"', '"+Pass+"', '"+Email+"', '"+PrimeiroNome+"', '"+UltimoNome+"', '"+Idade+"', '"+Morada+"', '"+Localidade+"', '"+CodigoPostal+"', '"+NumeroCelular+"');";    
           out.println("Registo concluido com sucesso!!");    
           st.executeUpdate(xt);    
           conn.close(); 
  
catch(SQLException e){  
     System.out.println("ERRO. FALHA NA INSERÇÃO DOS DADOS");  
     e.printStackTrace(); //aqui vc fica sabendo a descrição do erro.
}   
  
System.out.println("DADOS INSERIDOS COM SUCESSO!");  
}%>

Outra coisa, esse código está em uma jsp? O_O
não faça isso.. leia um pouco sobre MVC.
[url]http://www.guj.com.br/java/1241-padrao-mvc[/url]

Sonkinha

Tinha 1 erro mas já achei. Tem um problema agora. Quando insiro os dados corretamente td bem mas quando insiro os dados errados apesar de não inserir na BD não aparce a mensagem de erro

sephil

Na verdade tá sobrando uma chave “}”
Mas nós só te demos uma idéia de como usar o try/catch… vc precisa adaptar ai no seu código.
Ah, e se estiver usando mesmo uma jsp, retire os “System” dos System.out.println()
=D

Sonkinha

Na verdade tá sobrando uma chave “}”
Mas nós só te demos uma idéia de como usar o try/catch… vc precisa adaptar ai no seu código.
Ah, e se estiver usando mesmo uma jsp, retire os “System” dos System.out.println()
=D
Px é cara. Tenho ainda que adaptar isso ae. Também só falta mensagem de quando insiro errado. Tá me aparecendo a mensagem de “ta td legal” e “ta dando errado” ao mesmo tempo.

Sonkinha

Na verdade tá sobrando uma chave “}”
Mas nós só te demos uma idéia de como usar o try/catch… vc precisa adaptar ai no seu código.
Ah, e se estiver usando mesmo uma jsp, retire os “System” dos System.out.println()
=D
Px é cara. Tenho ainda que adaptar isso ae. Também só falta mensagem de quando insiro errado. Tá me aparecendo a mensagem de “ta td legal” e “ta dando errado” ao mesmo tempo.
Mas eu resolvo isso na boa!
Blz galera!

sephil

Hehe deve ser a linha 8 do exemplo ai

out.println("Registo concluido com sucesso!!");

que diz que foi concluído com sucesso, antes mesmo de tentar incluir o registro.

vai tentando ai, e postando as dúvidas.

=D

Sonkinha

sephil:
Hehe deve ser a linha 8 do exemplo ai

out.println("Registo concluido com sucesso!!");

que diz que foi concluído com sucesso, antes mesmo de tentar incluir o registro.

vai tentando ai, e postando as dúvidas.

=D


Não precisa postar as dúvidas porque já está tudo resolvido =D
Foi só mudar o out.printlln para o catch.
Blz :wink:

Sonkinha

Pois. Mas continuo com 1 problema! :evil:
Preciso que algo veja que já existe um utilizador com o mesmo nome de Usuário na BD. Vou precisar de outro try catch! Ou posso usar o mesmo? Ou tem outra maneira de fazer?
Sugestões?

sephil

hmm isso já é mais complicado…
você podia gravar o nome do usuário em uma variável de sessão… ou aplicação. Não é uma boa solução, mas nunca fiz algo parecido ‘-’.

Criado 9 de maio de 2011
Ultima resposta 9 de mai. de 2011
Respostas 18
Participantes 5