4

我有一个 mysql 数据库,我正试图从我们的网站主机(godaddy)检索。我遵循了一种似乎正确的格式,但它告诉我:

java.sql.SQLException: No database selected

代码:

public static void main(String[] args) {

    Connection conn = null;
    Statement stmt = null;

    try {
        // STEP 2: Register JDBC driver
        Class.forName(JDBC_DRIVER);

        // STEP 3: Open a connection
        System.out.println("Connecting to database...");
        conn = DriverManager.getConnection(DB_URL, USER, PASS);

        // STEP 4: Execute a query
        System.out.println("Creating statement...");
        stmt = conn.createStatement();
        String sql;
        sql = "SELECT * FROM item_master";
        ResultSet rs = stmt.executeQuery(sql);  //<-- This is where the error is.

        // STEP 5: Extract data from result set
        while (rs.next()) {
            // Retrieve by column name
            int id = rs.getInt("id");

            // Display values
            System.out.print("ID: " + id);
        }
...
}

我做了一个 conn 的打印语句,可能认为连接可能为空,并显示如下:

com.mysql.jdbc.JDBC4Connection@2a6*****

任何人都有任何想法可能导致这样的事情?

4

3 回答 3

13

您的数据库 URL 应包含您的数据库名称。这通常是您的 URL,后跟“/DBNAME”。

String URL = "jdbc:mysql://localhost:3306/mydb";

其中“mydb”是您的数据库名称。

于 2013-02-13T00:28:05.840 回答
1

DB_URL 的值是多少?据我所知,URL 需要采用以下形式:“WEBURL/DATABASENAME:PORT” 您是否只是尝试连接到 WEBURL,而不指定 DATABASE?

于 2013-02-13T00:25:25.180 回答
0

我有同样的问题。

只需再运行一个查询(在您的“SELECT”语句之前)即可连接到您的数据库。

第一的:

sql = "USE <yourdatabase>";

ResultSet rs = stmt.executeQuery(sql); 

之后:

sql = "SELECT * FROM item_master";

rs = stmt.executeQuery(sql);
于 2013-10-11T08:16:40.413 回答