我有一个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的打印声明,可能认为连接可能为null并显示为:
com.mysql.jdbc.JDBC4Connection@2a6*****
任何人都有任何想法会导致这样的事情吗?
答案 0 :(得分:11)
您的数据库的URL应包含您的数据库名称。这通常是您的网址,后跟“/ DBNAME”。
String URL = "jdbc:mysql://localhost:3306/mydb";
“mydb”是您的数据库名称。
答案 1 :(得分:1)
DB_URL的价值是多少?据我所知,URL必须是以下形式: “WEBURL / DATABASENAME:PORT” 您是否只是尝试连接到WEBURL而未指定DATABASE?
答案 2 :(得分:0)
我遇到了同样的问题。
再运行一次查询(在'SELECT'语句之前)以连接到您的数据库。
首先:
sql = "USE <yourdatabase>";
ResultSet rs = stmt.executeQuery(sql);
之后:
sql = "SELECT * FROM item_master";
rs = stmt.executeQuery(sql);