Jump to content
Fórum Script Brasil
  • 0

Conexão com o banco de dados classeDAO


luis augusto

Question

alguém 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

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...