2012-10-07 48 views
1

我想獲取存儲在mysql中的數據庫列表,並通過結果集使用命令「show databases」將其放入java表中。但它不起作用。JDBC未執行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

你正在得到什麼錯誤?此外,沒有必要內executeQuery – greatmajestics

+1

-1「它不工作」 –

回答

5

這不是在JDBC中獲取數據庫列表的最佳方式。下面是它的工作方式 - 使用元數據

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(); 

參見:how to get list of Databases "Schema" names of MySql using java JDBC

-1

我只是忘了JDBC後」添加冒號:mysql的 正確的代碼是:

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

它的工作原理。 ........ !!!