Bom dia amigos, estou pegando alguns dados (metadata) de uma tabela utilizando o ResultSetMetaData, porém preciso retornar o comentário (comment) e o valor padrão (default) de cada campo. Para facilitar a compreensão, segue um exemplo de uma tabela chamada cidade aonde o campo “uf” tem um comentário.
CREATE TABLE cidade (
id int(11) NOT NULL auto_increment,
codibge varchar(10) NOT NULL default '',
nome varchar(40) NOT NULL default '',
uf varchar(2) NOT NULL default 'PR' COMMENT 'Genérica (UF)',
PRIMARY KEY (id)
)
O meu código JAVA que retorna o nome dos campos é:
//Pegar dados da tabela
DatabaseMetaData dbmd = conn.getMetaData();
Statement stmt = conn.createStatement();
ResultSet rs = dbmd.getTables(null, null, "", null);
while (rs.next()) {
//Pega campos
ResultSet rset = stmt.executeQuery("SELECT * from "+ rs.getString("TABLE_NAME"));
ResultSetMetaData rsmd = rset.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
String nome = rsmd.getColumnName(i + 1);
String tipo = rsmd.getColumnTypeName(i + 1);
Integer tamanho = rsmd.getColumnDisplaySize(i + 1);
Integer decimal = rsmd.getScale(i + 1);
Boolean nulo = rsmd.isNullable(i + 1) == 1;
}
}
No exemplo que eu fiz, eu não consigo pegar do campo “uf”, por exemplo, nem o valor padrão “PR” e nem o comentário “Genérica (UF)”.
Como resolver este problema?