Caros, boa noite!
Possuo tabelas tbtipodedoacao e tbmaterial que estão relacionadas com a tabela tbnecessidade. Estou inserindo dados nas 2 tabelas e quero pegar a id da ultima linha registrada tanto da tbtipodedoacao quanto a tbmaterial e inserir na tabela tbnecessidade.
DAO
public boolean setAdicionar(NecessidadeDTO Necessidade) throws SQLException, ClassNotFoundException {
String sql = "INSERT INTO tbtipodedoacao (desc_tipo) VALUES (?)";
PreparedStatement ps = super.getPreparedStatement(sql);
ps.setString(1, Necessidade.getTipo());
int ret = ps.executeUpdate();
String sql2 = "INSERT INTO tbmaterial (nome_material) VALUES (?)";
PreparedStatement ps2 = super.getPreparedStatement(sql2);
ps2.setString(1, Necessidade.getNome());
int ret2 = ps2.executeUpdate();
String sql3 = "INSERT INTO tbnecessidade "
+ "(desc_necessidade, progresso_necessidade, fk_id_material, fk_id_tipo)"
+ " VALUES (?, ?, LAST_INSERT_ID(), LAST_INSERT_ID())";
PreparedStatement ps3 = super.getPreparedStatement(sql3);
ps3.setString(1, Necessidade.getDescricao());
ps3.setInt(2, Necessidade.getProgresso());
int ret3 = ps3.executeUpdate();
ps.close();
ps2.close();
ps3.close();
super.getFechaConnection();
return ret > 0 || ret2 > 0 || ret3 > 0;
}
Utilizando esse código estou apenas pegando a id da tabela tbmaterial e aplicando nas colunas Fk_id_material e FK_id_tipo na tabela tbnecessidade.