Jump to content
Fórum Script Brasil
  • 0

(Resolvido) rs.last() ?


Jesc

Question

Bom dia a todos.

Estou tentando pegar o id de uma tabela chamada 'pessoa' que é auto_increment e colocar na tabela 'pessoa_juridica', que não é auto_increment, mas o id_pessoa é FK nesta última tabela.

Como faço pra pegar esse id incrementado pra colocar na outra tabela ?

As duas tabelas e o código do método que insere estão abaixo:

CREATE TABLE pessoa (

id_pessoa integer unsigned not null auto_increment,

nome varchar(40) not null,

fone varchar(15) not null,

tipo_pessoa enum('J','F') not null,

primary key (id_pessoa)

)ENGINE=InnoDB;

CREATE TABLE pessoa_juridica (

id_pessoa_jur integer unsigned not null,

nome_fant varchar(40) not null,

fundacao date not null,

cnpj varchar(15) not null,

e_clube enum("S","N") not null

)ENGINE=InnoDB;

ALTER TABLE pessoa_juridica

ADD CONSTRAINT FK_pessoa_jur FOREIGN KEY (id_pessoa_jur) REFERENCES pessoa (id_pessoa) ON UPDATE CASCADE ON DELETE CASCADE;

Codigo:

public void salvarPJuridica(String nome, String nome_fant, String fundacao, String cnpj, String fone,int clube){

final String tipo="J";

String resp="";

int num=0,num1=0;

if(clube == 0)

resp="S";

else if(clube == 1)

resp="N";

String SQL = "INSERT INTO pessoa VALUES("

+num

+",\""+nome+"\""

+",\""+fone+"\""

+",\""+tipo+"\")";

String SQL1 = "INSERT INTO pessoa_juridica VALUES("

+num1

+",\""+nome_fant+"\""

+",\""+fundacao+"\""

+",\""+cnpj+"\""

+",\""+resp+"\")";

String SQL2 = "SELECT id_pessoa FROM pessoa ORDER BY id_pessoa";

try {

int result = stm.executeUpdate(SQL);

}catch (Exception e) {}

try{

rs=stm.executeQuery(SQL2);

rs.last();

num1=rs.getInt("id_pessoa");

}catch(Exception e){

JOptionPane.showMessageDialog(null,"ERRO - Não foi possível pegar o id_pessoa\n - "+e.toString());

}

try {

int result1 = stm.executeUpdate(SQL1);

if( result1>=1)

JOptionPane.showMessageDialog(null,"Cadastrado realizado com sucesso.");

} catch (Exception e) {

JOptionPane.showMessageDialog(null,"ERRO - Cadastrado falhou - "+e.toString());

}

}

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Estou tentando pegar o id de uma tabela chamada 'pessoa' que é auto_increment e colocar na tabela 'pessoa_juridica', que não é auto_increment, mas o id_pessoa é FK nesta última tabela.

Como faço pra pegar esse id incrementado pra colocar na outra tabela ?

As duas tabelas e o código do método que insere estão abaixo:

Oi, Jesc!

Bom dia.

Use a função LAST_INSERT_ID()

Conforme o manual do MySQL versão 5.0(em inglês)

1.9.4. MySQL Extensions to Standard SQL

The LAST_INSERT_ID() function returns the most recent AUTO_INCREMENT value. See Section 12.9.3, “Information Functions”.

Example 23.9. Retrieving AUTO_INCREMENT Column Values using SELECT LAST_INSERT_ID()

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...