JDBC没有执行SHOW DATABASES命令

我想得到一个存储在mysql中的数据库列表,并通过结果集使用命令“show databases”放入java表中。 但它不起作用。

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"); } 

这不是获取JDBC数据库列表的最佳方法。 这是它的完成方式 – 使用MetaData

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

另请参见: 如何使用Java JDBC获取MySql的数据库“模式”名称列表

我只是忘了在“jdbc:mysql正确的代码是:

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

有用 ,……… !!!