Como é que crio mensagem de erro neste caso?

[code]
String NUd=request.getParameter(“NUj”);
String Pd=request.getParameter(“Pj”);

st = conn.createStatement();
xt = “Insert into tabela (NU, P) values (’”+NUd+"’, ‘"+Pd+"’);";
out.println(“Inserido com sucesso!!”);
st.executeUpdate(xt);
conn.close();}[/code]

Como é que crio uma mensagem de erro quando já existe na tabela um valor igual ao que é para ser inserido no campo “NU”?

Que tal começar ‘limpando’ esse código?
Use PreparedStatement em vez de Statement.

O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception

[quote=Bruno Ferreira]O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception[/quote]
Não é primária nem única. Tenho uma chave pimária na tabela mas é o ID.
Não postei aqui porque não achei necessário.

[quote=Sonkinha][quote=Bruno Ferreira]O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception[/quote]
Não é primária nem única. Tenho uma chave pimária na tabela mas é o ID.
Não postei aqui porque não achei necessário.[/quote]

Caso fosse chave primária ou Unique ja daria uma Exception SQL e você poderia tratar o erro com uma mensagem
neste caso você pode fazer uma consulta no banco utlizando o operador Like, e criar uma função Booleana pra ver se ele existe ou não

[code]

String NUd=request.getParameter(“NUj”);
String Pd=request.getParameter(“Pj”);

public boolean verificaRegistro(){
String query=“SELECT * FROM tabela WHERE NU like’”+nud+"’" ;
ResultSet rs=st.executeQuery(query);
if(rs.next())
JOptionPane.showMessageDialog(null, “Este registro ja existe!”);
return false;
else
return true;
}

if(verificaRegistro()){
st = conn.createStatement();
xt = “Insert into tabela (NU, P) values (’”+NUd+"’, ‘"+Pd+"’);";
out.println(“Inserido com sucesso!!”);
st.executeUpdate(xt);
conn.close();
} [/code]

*Me corrijam se eu estiver falando besteira

Tirando o if com mais de um comando sem chaves, e o uso desnecessário do escopo público, esse código do Bruno tá correto ‘-’

então corrigindo o if (o public não fara diferença neste caso):

[code]String NUd=request.getParameter(“NUj”);
String Pd=request.getParameter(“Pj”);

public boolean verificaRegistro(){
String query=“SELECT * FROM tabela WHERE NU like’”+nud+"’" ;
ResultSet rs=st.executeQuery(query);
if(rs.next()) {
JOptionPane.showMessageDialog(null, “Este registro ja existe!”);
return false;
}
else
return true;
}

if(verificaRegistro()){
st = conn.createStatement();
xt = “Insert into tabela (NU, P) values (’”+NUd+"’, ‘"+Pd+"’);";
out.println(“Inserido com sucesso!!”);
st.executeUpdate(xt);
conn.close();
} [/code]

então corrigindo o if (o public não fara diferença neste caso):

[code]String NUd=request.getParameter(“NUj”);
String Pd=request.getParameter(“Pj”);

public boolean verificaRegistro(){
String query=“SELECT * FROM tabela WHERE NU like’”+nud+"’" ;
ResultSet rs=st.executeQuery(query);
if(rs.next()) {
JOptionPane.showMessageDialog(null, “Este registro ja existe!”);
return false;
}
else
return true;
}

if(verificaRegistro()){
st = conn.createStatement();
xt = “Insert into tabela (NU, P) values (’”+NUd+"’, ‘"+Pd+"’);";
out.println(“Inserido com sucesso!!”);
st.executeUpdate(xt);
conn.close();
} [/code][/quote]

Esse public boolean não está a dar cara.
Eu percebo a lógica de seu código mas nunca usei um public boolean.
Tá dizendo “illegal start of expression” e faz como que apareça muitos erros no código seguinte

o problema não esta no public ou na assinatura do método.
Da uma olhada nas chaves, se estão todas abrindo e fechando corretamente
ou se for outro erro, coloque o mouse onde esta sublinhado e diga qual o erro

[quote=Bruno Ferreira]o problema não esta no public ou na assinatura do método.
Da uma olhada nas chaves, se estão todas abrindo e fechando corretamente
ou se for outro erro, coloque o mouse onde esta sublinhado e diga qual o erro[/quote]

Eu coloquei meu mouse onde esta sublinhado e apareceu “illegal start of expression”
Cara vou colocar meu código verdadeiro aqui para você ver. Não o coloquei antes porque não achei necessário e não queria que meu professor descubra que o postei :mrgreen:
Quando meu problema se resolver vou apaga-lo.
Meu código é esse:

[code]<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<%@page import=“java.sql.*”%>

<% String NomeUtilizadord=request.getParameter("NomeUtilizador"); String Passd=request.getParameter("Pass"); String Emaild=request.getParameter("Email"); String PrimeiroNomed=request.getParameter("PrimeiroNome"); String UltimoNomed=request.getParameter("UltimoNome"); String Idaded=request.getParameter("Idade"); String Moradad=request.getParameter("Morada"); String Localidaded=request.getParameter("Localidade"); String CodigoPostald=request.getParameter("CodigoPostal"); String NumeroTelemoveld=request.getParameter("NumeroTelemovel");
        java.sql.Connection conn = null;

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

public boolean verificaRegistro(){
String query="SELECT * FROM registodeclientes WHERE NomeUtilizador like'"+NomeUtilizadord+"'" ;
ResultSet rs=st.executeQuery(query);
if(rs.next()) {
   JOptionPane.showMessageDialog(null, "Este registro ja existe!");
 return false;

}
else
return true;
}

if(verificaRegistro()){
 st = conn.createStatement();
 xt = "Insert into registodeclientes (NomeUtilizador, Pass, Email, PrimeiroNome, UltimoNome, Idade, Morada, Localidade, CodigoPostal, NumeroTelemovel) values ('"+NomeUtilizador+"', '"+Pass+"', '"+Email+"', '"+PrimeiroNome+"', '"+UltimoNome+"', '"+Idade+"', '"+Morada+"', '"+Localidade+"', '"+CodigoPostal+"', '"+NumeroTelemovel+"');";
 out.println("Inserido com sucesso!!");
 st.executeUpdate(xt);
 conn.close();

}

%>

[/code] Não vejo onde tá o raio do erro. O problema só pode vir do public boolean. Ele faiz com que o resto do código a partir dele dê todo erro.

:slight_smile: ele só quer que vc coloque private no método … rs

Então cara, nunca utilizei servlet, apesar de ter outro problema:

[code]java.sql.Connection conn = null;

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

public boolean verificaRegistro(){  
String query="SELECT * FROM registodeclientes WHERE NomeUtilizador like'"+NomeUtilizadord+"'" ;  
ResultSet rs=st.executeQuery(query);  
if(rs.next()) {  
   JOptionPane.showMessageDialog(null, "Este registro ja existe!");  
 return false;  

}
else
return true;
} [/code]

na linha 1 e na linha 6, o objeto Conection e o Statement estão nulos. e onde esta a conexão? tem as Strings URL, User e Password, mas aonde
é criada a conexão?

não sei como funciona no servlet, ja que não tem uma classe explícita ai, pois seria instanciando uma classe e chamando
o método verificaRegistro() que funcionaria o que eu te indiquei, neste caso eu não posso te ajudar

A conexão está boa! Tenho outras páginas que usam o mesmo tipo de código e resultam.
A conexão também é feita a partir desta linha de código que está aqui: <%@page import="java.sql.*"%>
Talvés tenho de arranjar outro método para resolver o meu problema, já que não se deve ter 2 usuários como mesmo nick name. E se não achar como resolver o problema só posso rezar para que meu professor não o encontre :cry:

[quote=Sonkinha]A conexão está boa! Tenho outras páginas que usam o mesmo tipo de código e resultam.
A conexão também é feita a partir desta linha de código que está aqui: <%@page import="java.sql.*"%>
Talvés tenho de arranjar outro método para resolver o meu problema, já que não se deve ter 2 usuários como mesmo nick name. E se não achar como resolver o problema só posso rezar para que meu professor não o encontre :cry: [/quote]

Mas que medo é esse do professor encontrar seu tópico? :shock:
Você esta aqui tirando uma dúvida. Ou seu professor disse que é proibido tirar duvidas ou participar de fóruns?
é assim que a gente aprende :slight_smile:

[quote=Bruno Ferreira][quote=Sonkinha]A conexão está boa! Tenho outras páginas que usam o mesmo tipo de código e resultam.
A conexão também é feita a partir desta linha de código que está aqui: <%@page import="java.sql.*"%>
Talvés tenho de arranjar outro método para resolver o meu problema, já que não se deve ter 2 usuários como mesmo nick name. E se não achar como resolver o problema só posso rezar para que meu professor não o encontre :cry: [/quote]

Mas que medo é esse do professor encontrar seu tópico? :shock:
Você esta aqui tirando uma dúvida. Ou seu professor disse que é proibido tirar duvidas ou participar de fóruns?
é assim que a gente aprende :slight_smile: [/quote]
Huahauhauahua não é isso! O que quero dizer é espero que meu professor não encontre o problema do meu projecto. Problema que estou tentando resolver aqui com você. :mrgreen:
Assim mesmo isto ta uma besteira. Tenho o campo de “NomeUtilizador” como unique key no meu sql e ele me aparece como null quando introduzo no campo, um nome que já existe. :hunf:

Então, como ja falei, não conheço o funcionamento de servlets, não posso te ajudar, não sei nem Swing ainda! :slight_smile:
Aguarde que talvez alguem mais experiente venha ajudar