Dae galera… estou com a seguinte dúvida…
Estou querendo capturar a chave gerada pelo banco, no meu caso é MySQL só que logo logo vai ser migrado para SQL Server, então tenho que ver se essa solução será fácil adaptar para o SQL Server… tá… mas a dúvida é essa… eu tenho uma tabela que tem chave composta, um exemplo qualquer seria USUARIO com PK Composta, id e idDepartamento, eu fiz uns testes com tabelas com chaves compostas e com o getGeneratedKeys ele sempre incrementa o id independente do idDepartamento, eu queria que o incremento fosse feito dessa forma:
Para o Departamento 400 teria os id’s 1, 2, 3 …
para o departamento 450 teria os id’s 1, 2 , 3 … ou seja, ele é incrementado tomando como referencia o departamento… como posso fazer ele dessa forma no banco? E outra… como posso capturar esses valores com o getGeneratedKeys?
Achei um código na net e usei para testar… mas só conseguir fazer com que o incremento seja feito indepentede da outra chave que faz parte da pk, ou seja, para o departamento 400, os ids eram 1, 2, 3 e para o departamento 450 os id’s eram 4, 5, 6!
[code]query = “INSERT …”;
PreparedStatement ps = connection.prepareStatement(query,Statement.RETURN_GENERATED_KEYS); //
try {
result = ps.execute();
ResultSet rs = ps.getGeneratedKeys();
int columns = rs.getMetaData().getColumnCount();
while (rs.next()) {
for (int i=1;i<=columns;i++) {
System.out.println(rs.getMetaData().getColumnName(i)+":"+rs.getString(i));
}
}[/code]
Abraço!