conexão com o banco de dados classeDao

5 respostas
L

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,  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…

5 Respostas

fbahia32

pq vc ta inserindo null no primeiro parametro?

L

Por que minha chave primaria e auto increment por isso o null …

diego.sas

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

ssh

é sql server?

se for, nao adicione nada no primeiro parametro. e no final da query adicione

;SELECT @@IDENTITY;

L

Não e mysql mesmo …

Criado 22 de novembro de 2011
Ultima resposta 22 de nov. de 2011
Respostas 5
Participantes 4