Boa tarde pessoal, estou fazendo um app para importar uns dados para um banco de dados firebird ( nunca havia trabalhado com o mesmo ), sempre trabalhei com mysql e estou acostumado com o lastInsertId(), para o firebird eu encontrei uma forma diferente de retornar o ultimo ID, entendi o codigo mas ele me causou estranheza, pois eu executo uma inserção com um executeQuery(), e aprendi ( posso ter aprendido errado ) que para inserções, alterações e deletes eu deveria usar o executeUpdate(), minha duvida é, alguém que ja trabalhou com firebird, inserir dados no firebird desta forma ( utilizando o executeQuery() ) pode me trazer algum problema futuro, ou para este banco de dados esta seria a forma correta?
connection.setAutoCommit(false);
pstmt = connection.prepareStatement("INSERT INTO PESSOA (ID, NOME) VALUES(?, ?) RETURNING ID");
pstmt.setInt(1, CODIGO_PESSOA);
pstmt.setString(2, "Nome");
// Pega a proxima chave
rs = pstmt.executeQuery();
rs.next();
int chave = rs.getInt("ID");
pstmt2 = connection.prepareStatement("INSERT INTO SOBRENOME (ID, IDPESSOA, SOBRENOME) VALUES(?, ?, ?);");
pstmt2.setInt(1, CODIGO_SOBREN);
pstmt2.setInt(2, chave);
pstmt2.setString(3, "Sobrenome Qualquer");
pstmt2.executeUpdate();
connection.commit();
PS: Antes que me perguntem, o código esta funcionando, e sim, é apenas um teste, por isso eu tenho as variáveis CODIGO_PESSOA e CODIGO_SOBREN.