Boa noite. Estou com uma dúvida muito ruim que está tirando meu sono. Seguinte: preciso fazer duas inserções em banco de dados. Tabela funcionario e tabela endereço. Elas estão relacionadas, mas na hora de inserir os dados eu preciso relacionar o ID do funcionario com sua chave estrangeira que está na tabela endereço. Por favor. Me ajudem. Obrigado.
Inserir dados
N
4 Respostas
Olá!
Quanto ao conceito, basicamente você insere um funcionário depois insere um endereço onde a chave primária do endereço é a mesma do funcionário (porque um funcionário tem apenas um endereço - um para um)… quanto ao código qual dúvida específica ?
Abraços
Rapaz… isso ai tem também a ver da forma que vc está implementando sua camada de persistência. Você está usando JDBC diretamente ou algum framework para implementar? tipo Hibernate?
não sei como esta modelado seu banco mas, segue uma idéia:
try {
//rs = ResulSet e s=Statement
rs = s.executeQuery("INSERT INTO (end.cod_endereco) FROM FUNCIONARIO f,ENDERECO end where f.cod_endereco = end.cod_endereco"));
}
catch (SQLException e) {}
N
não sei como esta modelado seu banco mas, segue uma idéia:Amigo tentei mas não deu certo. Acho que estou fazendo errado mesmo. Você poderia ver aonde estou errando? Eu sei que estou utilizando o pior método para fazer isso, mas estou desesperado e com pressa. Desde j´agradeço muito.try { //rs = ResulSet e s=Statement rs = s.executeQuery("INSERT INTO (end.cod_endereco) FROM FUNCIONARIO f,ENDERECO end where f.cod_endereco = end.cod_endereco")); } catch (SQLException e) {}
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*"%>
<%@include file="../conexao.jsp"%>
<%
//Nada será gravado no cache do cliente
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
if (request.getProtocol().equals( "HTTP/1.1" )) {
response.setHeader("Cache-Control","no-cache");
}
%>
<%
out.println("<html><head><SCRIPT language='JavaScript'>");
try{
stm.executeUpdate("insert into funcionario(cpf, rg, nome, dt_nascimento, dt_admissao, email) values('" + request.getParameter("txtCpf") + "','" + request.getParameter("txtRg") + "','" + request.getParameter("txtNome") + "','" + request.getParameter("txtDtNasc") + "','" + request.getParameter("txtDtAdmissao") + "','" + request.getParameter("txtEmail") + "');");
out.println("alert('O Funcionário "+ request.getParameter("txtNome")+" foi incluído no banco');");
}
catch(Exception e ){
out.println("alert('Funcionário "+ request.getParameter("txtNome")+" não incluído');");
}
finally{
try{
stm.executeUpdate("insert into endereco(rua, numero, bairro, cidade, estado, cep, complemento) values('" + request.getParameter("txtEnd") + "','" + request.getParameter("txtEndNum") + "','" + request.getParameter("txtEndBairro") + "','" + request.getParameter("txtEndCidade") + "','" + request.getParameter("txtEndEstado") + "','" + request.getParameter("txtCep") + "','" + request.getParameter("txtEndComp") + "');");
}
catch(Exception e ){
out.println("alert('Não foi possível salvar o endereço!');");
}
finally{
try{
rs = stm.executeUpdate ("INSERT INTO (f.endereco_idEnd) FROM endereco e, funcionario f WHERE e.idEnd = f.endereco_idEnd");
}
catch(Exception e ){
out.println("alert('Não foi possível inserir os dados!');");
}
finally{
out.println("</SCRIPT></head><body><a href='funcForm.jsp'>Voltar</a></body></html>");
}
}
}
%>
Ele está inserindo os dados na tabela de Funcionário e Endereço normalmente. Só não estou conseguindo "relacionar" os campos. Obrigado.
Criado 4 de dezembro de 2007
Ultima resposta 5 de dez. de 2007
Respostas 4
Participantes 4
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo