Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

augusto luis

Conexão com o banco de dados classeDAO

Recommended Posts

alguem pode me ajudar ?

estou com um problema estou dando insert em três tabelas ao mesmo tempo ,ou seja ,quando eu insiro os dados pelo formulario os dados vão pra três tabelas ao mesmo tempo ,eu ate consigo inserir nas três tabelas ,mas as minhas fks dos relacionamentos sempre retornam 0 a cada nova inserção,

gostaria de saber qual a maneira correta de fazer este insert onde na hora da inserção eu não retorne 0 nas fks ?

 

esse e meu codigo :

public void cadastrarCliente(Cliente cliente) {
       try {
           pstm = bd.conectar().prepareStatement("select * from pessoa where pess_nome like ?");
           pstm.setString(1, cliente.getNome());
           rs = pstm.executeQuery();
           if(rs.next()){
               JOptionPane.showMessageDialog(null, "já existe um cliente cadastrado com este nome !");

            }else{
            pstm = bd.conectar().prepareStatement("insert into pessoa values(null,?,?,?,?,?,?,?,?,?,?)");


           pstm.setString(1, cliente.getNome());
           pstm.setString(2, cliente.getSexo());
           pstm.setString(3, cliente.getIdade());
           pstm.setString(4, cliente.getEmail());
           pstm.setString(5, cliente.getDatanasc());
           pstm.setString(6, cliente.getEstadocivil());
           pstm.setString(7, cliente.getCpf());
           pstm.setString(8, cliente.getRg());
           pstm.setString(9, cliente.getTelefonefixo());
           pstm.setString(10, cliente.getCelular());





           pstm.executeUpdate();
           }
       } catch (Exception e) {
           e.printStackTrace();
       }finally {
           bd.desconectar();
       }
       try{

           pstm = bd.conectar().prepareStatement("insert into endereco values(null,LAST_INSERT_ID(),LAST_INSERT_ID(),?,?,?,?,?)");


            pstm.setString(1, cliente.getEndereco());
            pstm.setString(2, cliente.getCidade());
            pstm.setString(3, cliente.getBairro());
            pstm.setString(4, cliente.getCep());
            pstm.setString(5, cliente.getUf());

            pstm.executeUpdate();

       }catch(Exception e){
           e.printStackTrace();
       }finally {
           bd.desconectar();
       }

       try{
              pstm = bd.conectar().prepareStatement("insert into clientes values(null, LAST_INSERT_ID())");








           pstm.executeUpdate();
       }catch(Exception e){
           e.printStackTrace();
       }finally {
           bd.desconectar();
       }
   }

att

 

luiz augusto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luis não sei se entendi,

 

mas pelo que parece você primeiro tem que criar as tabelas como auto_increment no banco de dados,

 

porque dai cada registro que for colocando o número do id vai mudando,

 

com relação a FKs, não as encontrei no seu código,

 

pelo que vi uma pessoa teria os dados da tabela endereco,

 

ai na tabela endereço teria que ter um campo cod_pessoa, que iria referenciar o id da pessoa.

 

Espero que posso ajudar em alguma coisa,

 

Não sei se era o que você queria, mas foi o que eu entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.