java - 程序运行无异常但不显示表名

标签 java mysql jdbc

我在 mysql 中有几个数据库,它们都包含一些带有几列的表。我从堆栈溢出答案中得到了下面的代码。 答案在: How can I detect a SQL table's existence in Java?

代码给出输出-

Driver Loaded.
Got Connection.

代码-

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) throws Exception {
DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
  System.out.println(rs.getString(3));
}  }

  static Connection conn;

  static Statement st;

  static {
try {
  // Step 1: Load the JDBC driver.
  System.out.println("Driver Loaded.");
  // Step 2: Establish the connection to the database.
  String url = "jdbc:mysql://localhost:3306/";

  conn = DriverManager.getConnection(url, "cowboy", "123456");
  System.out.println("Got Connection.");

  st = conn.createStatement();
} catch (Exception e) {
  System.err.println("Got an exception! ");
  e.printStackTrace();
  System.exit(0);
}
  }
}

最佳答案

在你的代码中只有你

System.out.println("Driver Loaded.");

这还不够。 您必须先加载驱动程序!

 Class.forName("com.mysql.jdbc.Driver");
 System.out.println("Driver Loaded.");

我很惊讶这有效

conn = DriverManager.getConnection(url, "cowboy", "123456");

并且您来到了这行代码。

System.out.println("Got Connection.");

用下面的代码,它会去,但你不会得到表的列表

static {
    try {
      // Step 1: Load the JDBC driver.
      Class.forName("com.mysql.jdbc.Driver");
      System.out.println("Driver Loaded.");
      // Step 2: Establish the connection to the database.
      String url = "jdbc:mysql://localhost";

      conn = DriverManager.getConnection(url,"user","passw");
      System.out.println("Got Connection.");
      ....
      }
}

正确设置数据库名称

static {
       try {
       // Step 1: Load the JDBC driver.
       Class.forName("com.mysql.jdbc.Driver");
       System.out.println("Driver Loaded.");
       // Step 2: Establish the connection to the database.
       String url = "jdbc:mysql://localhost/myDataBase";
       conn = DriverManager.getConnection(url,"user","passw");
       System.out.println("Got Connection.");
       ....
       }
}

您可以看到 myDataBase 表的列表。

关于java - 程序运行无异常但不显示表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11699023/

相关文章:

java - 没有jdbc等框架,如何在java中连接数据库?

java - 使用哪个 Azure 存储管理 jar

java - 如何在编译期间使用java调试标志查找参数

java - 将泛型类型类传递给方法

mysql - 当更新记录时,如何防止 MySQL 存储过程中的变量值发生变化?

java - 如何从 JDBC 接收 Statement 的所有 ResultSet?

java - 如何将 IP 地址绑定(bind)到 Spring 3 @ModelAttribute?

mysql - 如何在 MySQL 中使用 LIMIT 选择最大两个值?

php - 根据数据库值选择复选框

java - 使用 JDBC 获取 Oracle 11g 的最后插入 ID