【发布时间】:2016-02-14 07:24:02
【问题描述】:
我的 java 类中有以下代码,但我无法创建单个表,因为它不会选择数据库
//STEP 1. Import required packages
import java.sql.*;
public class DBTest {
// Database credentials
private static final String USER = "root";
private static final String PASS = "1234";
private static Connection conn = null;
private static Statement stmt = null;
static final String DB_URL = "jdbc:mysql://localhost/";
public static void main(String[] args) throws SQLException, ClassNotFoundException {
getConnection();
}
public static Connection getConnection() throws SQLException, ClassNotFoundException {
try {
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
createTable(conn);
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
return conn;
}
public static void createTable(Connection conn) throws SQLException {
System.out.println("Creating database...");
stmt = conn.createStatement();
// Open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
// Execute a query
System.out.println("Creating table in given database...");
String sql = "CREATE TABLE REGISTRATION " + "(id INTEGER not NULL, " + " first VARCHAR(255), "
+ " last VARCHAR(255), " + " age INTEGER, " + " PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
}
}
请注意:我导入的唯一库是 java.sql,并且我的连接器已包含在我引用的库中,所以一切都应该设置好!
考虑到这一切,谁能告诉我为什么我得到 No database selected SQLException?
【问题讨论】:
-
static final String DB_URL = "jdbc:mysql://localhost/MyDatabase";... -
你不需要 jdbc jars 吗?
-
@Reimeus 感谢您的评论!我知道我的 url 中没有数据库,但是如何创建一个新数据库,而无需安装任何第三方软件,这样使用我的程序的用户也不必安装任何东西?
-
@abtPst 我确实设置了库!
-
您的代码很难理解,原因之一是:您为什么要在
createTable中创建与服务器的新连接(没有数据库)?