【问题标题】:JDBC is not executing SHOW DATABASES command [closed]JDBC没有执行SHOW DATABASES命令[关闭]
【发布时间】:2012-09-28 01:52:00
【问题描述】:

我想获取存储在 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");
}

【问题讨论】:

  • 您遇到什么错误?还 ;在 executeQuery 中不需要

标签: java mysql jdbc resultset


【解决方案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();

另请参阅:how to get list of Databases "Schema" names of MySql using java JDBC

【讨论】:

    【解决方案2】:

    我只是忘了在“jdbc:mysql”后面加冒号 正确的代码是:

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

    它有效,............ !!!

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      相关资源
      最近更新 更多