Como acceder al nombre de las tablas si no se tiene o a la inf sobre ellas

bea
07 de Abril del 2004
Buenas, estoy creando una aplicacion que se conecta a la base de datos que se pida y muestra sus tablas y campos para realizar operaciones sql. Mi problema es que no se como recuperar el nombre de las tablas.Lo he intentado con el MetaBase Data del objeto connection pero me da excepcion, alguien me puede echar una mano? Gracias

Heihachi
07 de Abril del 2004
Pues se hace con DatabaseMetaData
El siguiente código lista todas las tablas:

public static void listarTablas(String s,Connection con){
boolean retorn=false;
try{
String nombreTablas = "%"; // Listamos todas las tablas
String tipos[] = new String[1]; // Listamos solo tablas
tipos[0]="TABLE";
java.sql.DatabaseMetaData dbmd = con.getMetaData();
java.sql.ResultSet tablas = dbmd.getTables( null, null, nombreTablas, tipos );
while(tablas.next()) {
// Mostramos solo el nombre de las tablas, guardado en la columna "TABLE_NAME"
System.out.println (tablas.getString(tablas.findColumn( "TABLE_NAME" ));
}
tablas.close();
}catch (java.sql.SQLException e) {}
}

La verdad es que DatabaseMetadata tiene un montón de métodos y no hay quien se aclare :)

Aquí hay ejemplos, por si no te sirve lo anterior:
http://cswww.essex.ac.uk/TechnicalGroup/TechnicalHelp/databaseMetaData.htm

Saludos!

eldrum
07 de Abril del 2004
Llendo un poco mas alla como puedo conocer las bases de datos que existen al otro lado de una conexion.
Que ocurre si lo que quiero hacer es un sistemas tipo phpmyadmin, o mysql-front (a traves de un jdbc generico) como puedo conseguir los nombres de las bases de datos.