这是程序的下面给出的输出:)JDBC:连接返回NULL,该怎么办?
Connection made!
Schema Name:null
Successfully connected to null
Releasing all open resources ...
内部establishConnection(康涅狄格州被初始化为空。然后,try块内的第一条语句应该与数据库建立连接,第三条语句将打印conn当前模式的名称。
根据API,getSchema()返回当前模式名称,如果没有,则返回null。
这意味着没有与conn关联的模式(我认为模式名与数据库名相同)任何人都可以建议我的预期是否正确,并且还建议为什么没有与conn相关的模式或null?
public class ConnectDB {
private Connection establishConnection() throws SQLException {
Connection conn = null;
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test_final1", "root", "password");
System.out.println("Connection made!");
System.out.println("Schema Name:"+conn.getSchema()+"\n");
} catch (SQLException sqle) {
System.err.println("SQL Exception thrown while making connection");
printSQLException(sqle);
}
return conn;
}
public static void main(String[] args) {
ConnectDB cdb= new ConnectDB();
Connection myconn=null;
try{
myconn=cdb.establishConnection();
if(myconn!=null) System.out.println("Successfully connected to " + myconn.getSchema());
}catch (SQLException e) {
ConnectDB.printSQLException(e);
} catch (Exception e) {
e.printStackTrace(System.err);
} finally {
ConnectDB.closeConnection(myconn);
}
}
这个问题是不是重复。另一个问题是关于Android,非常关注JTD驱动程序(我没有使用过)。我发表了这条评论以作澄清,因为我有评论说它是重复的,在我的解释后被删除。 – Solace
哪里是你已经加载'MYSQL驱动程序'的代码 –
人!问题不在于获取'null'连接,而是执行'Connection#getSchema'方法获得'null'返回值。 –