Como faço para obter o nome da tabela de destino e coluna da coluna de chave estrangeira com JDBC simples

StackOverflow https://stackoverflow.com/questions/2329588

  •  22-09-2019
  •  | 
  •  

Pergunta

Estou tentando fazer um pedaço de código usando JDBC simples que me pega o nome da tabela de destino e da coluna de uma chave estrangeira de uma coluna específica em tabela específica, mas passando pelas interfaces principais que não consigo encontrar um direto maneira de fazer isso.

Existe uma maneira de obter essas informações sobre chaves estrangeiras através do JDBC diretamente ou tenho que recorrer a consultas de metadados para um banco de dados específico, neste caso o HSQLDB.

Se eu tiver que usar as consultas de metadados específicas do banco de dados, quais tabelas de metadados internas do HSQLDB mantêm essas informações?

Foi útil?

Solução

Sua melhor aposta é Connection#getMetaData() que retorna DatabaseMetaData com todos os métodos para obter informações sobre todos mesas, colunas, chaves primárias, Chaves estrangeiras, etc. No entanto, você depende da implementação do JDBC (leia: o driver JDBC Make/Version) se isso é totalmente suportado.

Outras dicas

O JDBC tem suporte para isso. Verificação de saída DATABASEMETADATA.GETCROSSReference classe. Outros métodos no suporte do DatabaseMetData para esquema de consulta, catálogo, tabelas, colunas etc. Lembre -se de que alguns bancos de dados requerem parâmetros extras no seu URL para ativar os metadados (ou seja, Oracle) para otimizar as chamadas. Não sei se o HQLSB exige isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top