queria saber como efetuar uma consulta sql atraves de uma conexão de banco de dados usando o SGBD mysql de forma que eu consiga capturar o nome de cada banco existentes e de suas tabelas.
Primeiro, algumas dicas.
O tópico é muito abrangente, difícil de entender.
Tente ser mais específico.
A pergunta ficou confusa, tente ser mais coerente.
Sim, existe.
Pode-se enviar qualquer tipo de query aceita pelo sgbd.
No caso do mysql, pode enviar um “SHOW DATABASES” ou “SHOW TABLES” por exemplo.
Eu queria que os nome dos bancos e tabelas aparecessem na aplicação java,atraves de algun comando sql ou java.
:? isso é possivel ?
[quote=Antonio Carlos M. Gomes]Eu queria que os nome dos bancos e tabelas aparecessem na aplicação java,atraves de algun comando sql ou java.
:? isso é possivel ?
[/quote]
Falando em JDBC, os bancos eu não sei, sinceramente. Mas as tabelas sim, usa o metadata que você consegue.
Tem bastante exemplos pela net.
http://www.java2s.com/Code/Java/Database-SQL-JDBC/GetAvailableTableNameInADatabase.htm
Como você faz para que os dados de uma tabela apareçam na aplicação?
Usando uma Connection, um Statement ou PreparedStatement ou CallableStatement e um ResultSet, certo?
Se deixar a preguiça de lado e resolver tentar fazer alguma coisa, quem sabe consiga.
eu tentei usar o PreparedStatement,tentando obter resulatados com o resultset mas não conegui o resultado desejado. Não retornou o nome dos banco nem tampouco de tabelas.
[quote=Antonio Carlos M. Gomes]eu tentei usar o PreparedStatement,tentando obter resulatados com o resultset mas não conegui o resultado desejado. Não retornou o nome dos banco nem tampouco de tabelas.
[/quote]
Como fez a implementação?
neste codigo tentei capturar la do mysql o nome dos bancos exitententes,mas ja pescebi que não é assim,como faço ? :?:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class teste {
public static void main (String[]a) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
//System.out.println("Conectado ao banco");
Connection c=DriverManager.getConnection("jdbc:mysql://localhost","root","qwe123");
PreparedStatement p=c.prepareStatement("show databases");
ResultSet r=p.executeQuery();
while(r.next())
{
System.out.println(r);
}
}
}
foi retornado o seguinte:
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
amigo pode xingar mais quais suas reais intensoes?
cara é serio estou com duvida.
é por que eu queria saber de alguma forma o o nome dos bancos no mysql sem ser diretamente nele ,no java
Clica no link que te passei logo acima que tem a solução pronta colega.
Leia sobre DatabaseMetaData.
Abraços.
[quote=Antonio Carlos M. Gomes]neste codigo tentei capturar la do mysql o nome dos bancos exitententes,mas ja pescebi que não é assim,como faço ? :?:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class teste {
public static void main (String[]a) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
//System.out.println("Conectado ao banco");
Connection c=DriverManager.getConnection("jdbc:mysql://localhost","root","qwe123");
PreparedStatement p=c.prepareStatement("show databases");
ResultSet r=p.executeQuery();
while(r.next())
{
System.out.println(r);
}
}
}
foi retornado o seguinte:
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
com.mysql.jdbc.JDBC4ResultSet@1ec10c9
[/quote]
E como não funcionou?
Você mandou escrever o resultSet, para cada result existente.
Por que não tentou
System.out.println(r.getString(1));