Datenbank Namen ausgeben lassen

  • Themenstarter Themenstarter ByeBye 227189
  • Beginndatum Beginndatum
B

ByeBye 227189

Hallo

Ich bin dabei ein kleines Programm zu schreiben, mit dem ich meine Datenbanken verwalten kann. Bin auch schon recht weit. Jetzt wollte ich, quasi als Killerfeature, das Programm dazu bringen, mir die verschiedenen Datenbanken (MySQL) in eine JComboBox ausgeben zu lassen. Wie kann ich mir nun, nur die Namen der Datenbanken ausgeben lassen?

Soweit steht die Verbindung, mit der Datenbank ja schon. :-)
 
also ich habe das hier

Code:
DatabaseMetaData md = (DatabaseMetaData) verbindung.getMetaData();
ResultSet rs2 = md.getCatalogs();
for(int i=0;rs2.next();++i)
{
    System.out.println(rs2.getString("SHOW_DATABASES"));
    //art ist hier ein schon fertiger String
    art = rs2.getString("SHOW_DATABASES");
    array2[i] = art;
}

jetzt in meinem Quellcode stehen... aber raus gibt er nur
"Column 'SHOW_DATABASE' not found"

:confused: Hm...
 
Du sollst das nicht beides mischen, sondern entweder das ein oder das andere machen.

ResultSet getCatalogs()
throws SQLException

Retrieves the catalog names available in this database. The results are ordered by catalog name.

The catalog column is:

1. TABLE_CAT String => catalog name

TABLE_CAT heißt also die Spalte die du abfragen musst.
 
Boaaaaaaa *Hände vors Gesicht klatsch*

Man kann auch mal etwas blind in der API herumstolpern! ^^
Ist wohl noch zu früh. ;)

Danke danke danke! Funtzt :-)
 
Kleine Frage von mir noch.

Darf man dass überhaubt so schreiben?
Code:
SHOW_DATABASE
Funktioniert bei mir nämlich nicht, der Unterstrich.

Nein, wenn du das als eigene SQL Anfrage schreibst dann nicht.

Beides geht also:
Java:
public static void main(String[] args) throws Exception {
	Class.forName("com.mysql.jdbc.Driver");
	Connection con = DriverManager.getConnection(
			"jdbc:mysql://localhost:3306", "" "");

	final ResultSet catalogs = con.getMetaData().getCatalogs();
	while (catalogs.next()) {
		final String strg = catalogs.getString("TABLE_CAT");
		System.out.println(strg);
	}

	final ResultSet dbs = con.createStatement().executeQuery(
			"SHOW DATABASES");
	while (dbs.next()) {
		final String strg = dbs.getString("Database");
		System.out.println(strg);
	}

}
 
Zurück