JDBC不执行SHOW DATABASES命令[关闭](JDBC is not executing

2019-08-01 05:59发布

我想存储在MySQL和使用命令“显示数据库”通过一个结果放于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");
}

Answer 1:

这并不是得到JDBC的数据库列表的最佳方式。 下面是它的工作方式 - 使用元数据

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的数据库“架构”名称列表



Answer 2:

我只是忘了JDBC后”添加冒号:mysql的正确的代码:

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

有用 ,......... !!!



文章来源: JDBC is not executing SHOW DATABASES command [closed]