É possivel?

É 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?

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

Por isso que existe try catch.

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

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!

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

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

[quote=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[/quote]
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.

[code] <%
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();}%>[/code]

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

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

[code]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!”);
}%>[/code]

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

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

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

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[/quote]
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.

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[/quote]
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![/quote]

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

[quote=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[/quote]
Não precisa postar as dúvidas porque já está tudo resolvido =D
Foi só mudar o out.printlln para o catch.
Blz :wink:

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?

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 ‘-’.