Formulário de cadastro

10 respostas
C

Fiz um formulário de cadastro de clientes e quando este form for submetido preciso mostrar na página jsp seguinte as informações do cliente passadas no form de cadastro e o “nº de registro” do cliente. O “nº de registro” é gerado automaticamente pelo banco de dados quando o cadastro é feito. Trata-se da chave primária da tabela.

A pergunta é: Como faço para recuperar este número de registro e mostra-lo na página jsp que é exibida após o cadastro ter sido efetuado ?

Desde já agradeço.

Coxon

10 Respostas

M

voce faz um select na tabela: ResultSet rs = stmt.executeQuery(query);
ai pra mostrar na tela é: out.print(rs.getInt("nomedocampo"));

ate mais…

C

Certo… mas desta forma acho que só consigo exibir os dados do cliente se souber o “nº de registro” dele, não é ?

Para fazer o “select na tabela” que você se refere, preciso saber o “nº de registro” do cliente para então recuperar as informações deste cliente.

O que preciso saber é como recuperar este “nº de registro” logo após o registro ter sido inserido na tabela.

Vou tentar explicar melhor o problema:

Estou usando um bean chamado “Cliente” e quando faço o cadastro, eu insiro os dados de uma instância desse bean na tabela.

Logo em seguida eu preciso mostrar uma tela que exibe as informações do cliente que acabou de ser cadastrado, inclusive o seu n° de registro. A sua solução resolve o meu problema se eu souber o “n° de registro” do cliente. Porém este número é gerado automaticamente pelo banco de dados quando ensiro o registro.

Então, como faço para recuperar este “n° de registro” e exibir na tela?

Agradeço pela atenção.

Coxon

E

8O

como?

cara tu naum usou um bean que tem as informações do cliente
que foi cadastrado, naum foi isso q tu feiz???

se fez isso, vc naum tah com os dados ainda num objeto do bean???

oq vc precisa saber foi se os dados foram realmente cadastrados
se foram vc exibe as informações que estaum dentro do bean…

ou vc ao final da inserção detona com o bean?

[]'s
Erko Bridee

M

certo entao e mais logica…vc vai mostrar logo apos o cadastro correto, uma solucao seria vc recuperar desse form q usuario preencheu um dado unico suponhamos cpf nao sei se e esse o caso e fazer o select na tabela com a clausula where…

ate mais…

R

Alguns bancos tem funções proprias de retornar o id do cadastro eu uso o mysql e tem o

mysql_insert_id(); //retorna o id gerado pelo auto_increment

Espero ter ajudado

Rodrigo

D

ae r_alves, naum conhecia essa funcao nao do MySQL… como faz pra usa-la?!

R

http://dev.mysql.com/doc/mysql/en/mysql_insert_id.html

Exemplo:

conn.query(“INSERT INTO mytable (product) values (‘kossu’)”);
System.out.println (“O ultimo registro incluído tem id %d\n”, mysql_insert_id());

D

dahora…
vai me quebrar um galhao isso…

Eu sempre fazia a insercao e depois buscava pela chave inserida para ter o codigo heeheh, vlw!

T

Minha forma seria a seguinte, eu importo minha classe JAVA que possui todos meus SQL, blz até ai, dai crio um objeto dessa classe JAVA, com isso esse objeto possui todos os meus SQL certo? Com isso bastaria você criar um select nessa classe JAVA aonde buscaria algo no banco lógico, caso você queira mostrar na tela o número do registro do novo usuário antes dele ser cadastrado no banco, a lógica seria dar um select no último registro e incrementar “+1”, blz, caso já tenha sido cadastrado pegar o último registro. Seria ± assim:

<%@Importa a classe “Banco.java por exemplo”%>

<%

Banco banco;

Resultset resultset;

banco = new Banco();
resultset = banco.buscar(); => Seria o nome do seu Método que possui o SQL na Classe JAVA blz, “buscar”.

if (resultset.next()){
%>

<%=resultset.getString(“Nome do Campo Registro”)%> => Incrementado ou não.

<%
}
%>

Caso você queira algo mais completo sobre essa forma de programar me da um toque blz, essa maneira de programar é super fácil você vai ver, conheço poucas pessoas que programam desse geito, e para todas pessoas que eu já mostrei quase todas se adaptaram a essa forma. Simples e Direta. :lol:

R

Olá!
Eu sou adepto da outra técnica… heheheheheh :lol:
Pelo simples motivo:
Imagine que 300 pessoas estão fazendo uma transaão ao mesmo tempo??
Quando a sua msg for mostrada com o numero do camarada, umas 299 podem passar a sua frente e pegar aquele ID que seria gerado para o usuário… Mesmo q vc tenha um banco de dados mais robusto como Oracle e SQLServer vc corre o risco de perder aquela ID para alguém, isso se sua transação falhar! :wink:
Então é melhor sempre mostrar o ID depois de cadastrado, vai que alguém passe a frente e vc pega um ID q não é seu?? :cool:
A técnica do mysql_insert_id() é muito boa para MyQSL que não trabalha com chave estrangeira em outros bancos acredito que ela não teria tanta utilidade…

Valeu pessoal!!! :grin:

Criado 17 de junho de 2004
Ultima resposta 3 de ago. de 2004
Respostas 10
Participantes 7