2012-10-07 8 views
1

Je veux obtenir une liste des bases de données stockées dans mysql et les mettre dans la table java en utilisant la commande "show databases" via un resultset. mais ça ne marche pas.JDBC n'exécute pas la commande SHOW DATABASES

DefaultTableModel model=(DefaultTableModel)dbTbl.getModel(); 
try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con=DriverManager.getConnection("jdbc:mysql//localhost/:3306","root","password"); 
    Statement stmt=con.createStatement(); 
    ResultSet rs=stmt.executeQuery("show databases;"); 
    while(rs.next()) 
    { 
    String db=rs.getString(1); 
    model.addRow(new Object[] {db}); 
    } 
    rs.close(); 
    stmt.close(); 
    con.close(); 
} 
catch(Exception e) 
{ 
    JOptionPane.showMessageDialog(null,"nahi chalda"); 
} 
+1

Quelle erreur obtenez-vous? Aussi, n'est pas nécessaire dans executeQuery – greatmajestics

+1

-1 pour "ça ne marche pas" –

Répondre

5

Ce n'est pas la meilleure façon d'obtenir une liste de bases de données dans JDBC. Voici la façon dont il est fait - à l'aide MetaData

Class.forName("com.mysql.jdbc.Driver"); 
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/:3306","root","password"); 
DatabaseMetaData meta = con.getMetaData(); 
ResultSet res = meta.getCatalogs(); 
while (res.next()) { 
    String db=rs.getString("TABLE_CAT"); 
    model.addRow(new Object[] {db}); 
} 
res.close(); 

Voir aussi: how to get list of Databases "Schema" names of MySql using java JDBC

-1

Je viens oublié d'ajouter deux points après « jdbc: mysql code est:

Connection con=DriverManager.getConnection("jdbc:mysql://localhost/:3306","root","password"); 

Il fonctionne,.

Questions connexes