try{ //faz o insert do Client
new ClientDao().insert(c);
//pega o id do último registro
int id_c=new DBUtils().getSequence(Conexao.getConnection(),"SELECT CLIENTSEQ.CURRVAL FROM DUAL");
System.out.println("ID do CLIENT após o insert:"+id_c);
public int getSequence(Connection conn,String query){
int sequence=0;
try{
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet result = stmt.executeQuery();
if (result.next()) {
sequence=(int)result.getLong(1);
} else {
System.out.println("Sequence não encontrada!");
throw new SQLException("Sistema incapaz de pegar a Sequence da base!");
}
result.close();
stmt.close();
}catch(Exception e){
throw new RuntimeException(e);
}
return sequence;
}
Entrou no insert: ID do CLIENT após o insert:1No segundo insert dispara:
Entrou no insert: ID do CLIENT após o insert:21Meu insert na base:
try{
int sequence=0;
stmt = this.connection.prepareStatement("SELECT CLIENTSEQ.NEXTVAL FROM DUAL");
ResultSet result = stmt.executeQuery();
if (result.next()) {
sequence=(int)result.getLong(1);
} else {
System.out.println("primary-key não encontrada!");
throw new SQLException("PK not found!");
}
result.close();
stmt.clearParameters();
stmt = (PreparedStatement) this.connection.prepareStatement(INSERT);
System.out.println("Entrou no insert:");
stmt.setInt(1, sequence);
stmt.setString(2, obj.getName());
stmt.executeUpdate();
stmt.close();
}catch(Exception e){
throw new RuntimeException(e);
}
O que pode estar ocorrendo?