Que tal começar ‘limpando’ esse código?
Use PreparedStatement em vez de Statement.
Bruno_Ferreira1
O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception
Sonkinha
Bruno Ferreira:
O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception
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.
Bruno_Ferreira1
Sonkinha:
Bruno Ferreira:
O Campo NU é chave primária ou Unique no banco?
Utilize uma SQL Exception
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.
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
StringNUd=request.getParameter("NUj");StringPd=request.getParameter("Pj");publicbooleanverificaRegistro(){Stringquery="SELECT * FROM tabela WHERE NU like'"+nud+"'";ResultSetrs=st.executeQuery(query);if(rs.next())JOptionPane.showMessageDialog(null,"Este registro ja existe!");returnfalse;elsereturntrue;}if(verificaRegistro()){st=conn.createStatement();xt="Insert into tabela (NU, P) values ('"+NUd+"', '"+Pd+"');";out.println("Inserido com sucesso!!");st.executeUpdate(xt);conn.close();}
*Me corrijam se eu estiver falando besteira
Mephy
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 ‘-’
Bruno_Ferreira1
Mephy:
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):
StringNUd=request.getParameter("NUj");StringPd=request.getParameter("Pj");publicbooleanverificaRegistro(){Stringquery="SELECT * FROM tabela WHERE NU like'"+nud+"'";ResultSetrs=st.executeQuery(query);if(rs.next()){JOptionPane.showMessageDialog(null,"Este registro ja existe!");returnfalse;}elsereturntrue;}if(verificaRegistro()){st=conn.createStatement();xt="Insert into tabela (NU, P) values ('"+NUd+"', '"+Pd+"');";out.println("Inserido com sucesso!!");st.executeUpdate(xt);conn.close();}
Sonkinha
Bruno Ferreira:
Mephy:
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):
StringNUd=request.getParameter("NUj");StringPd=request.getParameter("Pj");publicbooleanverificaRegistro(){Stringquery="SELECT * FROM tabela WHERE NU like'"+nud+"'";ResultSetrs=st.executeQuery(query);if(rs.next()){JOptionPane.showMessageDialog(null,"Este registro ja existe!");returnfalse;}elsereturntrue;}if(verificaRegistro()){st=conn.createStatement();xt="Insert into tabela (NU, P) values ('"+NUd+"', '"+Pd+"');";out.println("Inserido com sucesso!!");st.executeUpdate(xt);conn.close();}
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
Bruno_Ferreira1
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
Sonkinha
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
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:
<%@pagecontentType="text/html"pageEncoding="UTF-8"%><%@pageimport="java.sql.*"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title></title><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"></head><bodybackground="images/fundo11.png"bgproperties="fixed"><center><%StringNomeUtilizadord=request.getParameter("NomeUtilizador");StringPassd=request.getParameter("Pass");StringEmaild=request.getParameter("Email");StringPrimeiroNomed=request.getParameter("PrimeiroNome");StringUltimoNomed=request.getParameter("UltimoNome");StringIdaded=request.getParameter("Idade");StringMoradad=request.getParameter("Morada");StringLocalidaded=request.getParameter("Localidade");StringCodigoPostald=request.getParameter("CodigoPostal");StringNumeroTelemoveld=request.getParameter("NumeroTelemovel");java.sql.Connectionconn=null;Stringurl="jdbc:mysql://localhost:3306/coiso";Stringuser="root";Stringpassword="778779";Statementst;Stringxt;publicbooleanverificaRegistro(){Stringquery="SELECT * FROM registodeclientes WHERE NomeUtilizador like'"+NomeUtilizadord+"'";ResultSetrs=st.executeQuery(query);if(rs.next()){JOptionPane.showMessageDialog(null,"Este registro ja existe!");returnfalse;}elsereturntrue;}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();}%></center></body></html>
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.
ferreira2006
ele só quer que vc coloque private no método … rs
Bruno_Ferreira1
Então cara, nunca utilizei servlet, apesar de ter outro problema:
java.sql.Connectionconn=null;Stringurl="jdbc:mysql://localhost:3306/coiso";Stringuser="root";Stringpassword="778779";Statementst;Stringxt;publicbooleanverificaRegistro(){Stringquery="SELECT * FROM registodeclientes WHERE NomeUtilizador like'"+NomeUtilizadord+"'";ResultSetrs=st.executeQuery(query);if(rs.next()){JOptionPane.showMessageDialog(null,"Este registro ja existe!");returnfalse;}elsereturntrue;}
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
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
Bruno_Ferreira1
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
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
Sonkinha
Bruno Ferreira:
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
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
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:
Bruno_Ferreira1
Então, como ja falei, não conheço o funcionamento de servlets, não posso te ajudar, não sei nem Swing ainda!
Aguarde que talvez alguem mais experiente venha ajudar