Listar Tabelas de um BD qualquer em JAVA
Então pessoal sou novo aqui no forum, dei uma olhada nos topicos mas ainda não acjei o que eu queria (eu acho), estou com uma duvida sobre um exercicício proposto pelo professor.
Desenvolva uma aplicação em Java para desktop. A aplicação deve ser baseada em JFrame para exibir
os metadados de um determinado banco de dados. Desenvolva uma ou mais Interfaces Gráficas para
realizar esta tarefa.
A aplicação irá exibir os seguintes metadados:
Listar as tabelas.
Listar os campos e tipos de uma tabela.
Listar as constraints.
Exibir os dados.
As configurações do banco devem ser armazenadas e lidas em arquivo texto. A aplicação deve permitir
alterar as configurações do banco.
Na parte de GUI não vou ter problema algum, queria saber se tem alguma função ou metodo do java que liste tabelas dos banco de dados. Ou terei que criar um esquema que monte tabelas coluna por coluna?
Vlw pela atenção de todos.
Gabriel Vendramini
Curtidas 0
Respostas
Eduardo Pereira
30/03/2011
Depende do banco, cada SGDB possui tabelas que retornam essas informações.
Um exemplo no sqlserver:
SELECT * FROM sys.tables where name='NomedaTabela';//para uma abrangência maior, verifique os relacionamentos
GOSTEI 0
Eduardo Pereira
30/03/2011
Passa para gente o banco que vai usar.
Se quiser opniões free, já vou indicar postgresql
abcs
GOSTEI 0
Eduardo Pereira
30/03/2011
A princípio vc terá que fazer um select no banco para poder listar esses resultados.
Dá uma olhada nesses tópico e vê se te ajuda: [url]http://netbeans.org/kb/70/java/gui-db.html[/url]
Nesse artigo aqui explica como criar um resultset, que é o que vc vai precisar pra fazer o select no banco.
[url]http://www.devdaily.com/java/edu/pj/jdbc/jdbc0003[/url]
Qualquer dúvida é só dizer :)
Obs.: Se tiver problemas com a leitura em inglês, o Google Chrome oferece um programa de tradução da página para o português :)
GOSTEI 0
Davi Costa
30/03/2011
Caso o site que passei o link saia do ar, vou postar os códigos aqui pra ficar mais simples e rápido de ver.
Como criar o seu ResultSet
Como Ler o resultado da sua consulta:
Código todo do exemplo do site:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Lname FROM Customers WHERE Snum = 2001");
while (rs.next()) {
String lastName = rs.getString("Lname");
System.out.println(lastName + "\n");
}
// Query1.java: Query an mSQL database using JDBC. import java.sql.*;
/**
* A JDBC SELECT (JDBC query) example program.
*/
class Query1 {
public static void main (String[] args) {
try {
String url = "jdbc:msql://200.210.220.1:1114/Demo";
Connection conn = DriverManager.getConnection(url,"","");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT Lname FROM Customers WHERE Snum = 2001");
while ( rs.next() ) {
String lastName = rs.getString("Lname");
System.out.println(lastName);
}
conn.close();
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
}GOSTEI 0
Matheus
30/03/2011
Olá Amigos do fórum..
Possuo o mesma dúvida, porém achei uma solução mais plausível para tal coisa..
Vide Link [url]http://boa-ventura.net/2011/02/04/listar-tabelas-do-banco-de-dados/[/url]
Ressalto que estou realizando modificações no sistema para efetuar o teste.
Postarei os resultados em breve
DatabaseMetaData meta = con.getMetaData();
GOSTEI 0
Fernando Rocha
30/03/2011
Opa, que legal!
Obrigado por compartilhar com a galera!
GOSTEI 0
Matheus
30/03/2011
Gostaria só de avisar que o comando citado funcionou perfeitamente..
Mais tarde postarei a minha implementação, e gostaria que postassem as implementações de vocês também, assim podemos melhorar o código..
Só ainda não consegui descobrir uma forma de mostrar as bases de dados, sendo que ainda nem tentei efetuar a conexão com o banco se especificar a base de dados..
A noite irei tentar outras coisas e postarei o resultado aqui.
Já de antemão agradeço aos colegas por terem aberto o tópico que com certeza irá ajudar muita gente..
GOSTEI 0
Ricardo Staroski
30/03/2011
No artigo abaixo eu uso reflection e o MetaData do ResultSet pra apresentar todos os campos de uma tabela.
[url]http://javafree.uol.com.br/artigo/871840/Apresentar-Resultado-de-Consulta-SQL-em-JTable.html[/url]
Daria pra complementar o exemplo listando todas as tabelas.
=)
GOSTEI 0
Fernando Rocha
30/03/2011
Posta sim que vai ajudar bastante gente :)
GOSTEI 0