Đây là sản phẩm của chương trình đưa ra dưới đây:JDBC: Kết nối trả về NULL, phải làm gì?
Connection made!
Schema Name:null
Successfully connected to null
Releasing all open resources ...
Bên establishConnection(), conn được khởi tạo như null. Sau đó, câu lệnh đầu tiên bên trong khối try được thiết lập kết nối với cơ sở dữ liệu, và câu lệnh thứ ba sau đó in tên lược đồ hiện tại của conn.
Theo API, getSchema() trả về tên lược đồ hiện tại hoặc null nếu không có.
Điều này có nghĩa là không có lược đồ (tôi nghĩ tên lược đồ giống với tên cơ sở dữ liệu) được liên kết với conn? Bất cứ ai có thể đề nghị nếu tôi là chính xác trong dự đoán của tôi, và cũng đề nghị tại sao là không có lược đồ hoặc null liên kết với conn?
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);
}
}
CÂU HỎI NÀY LÀ KHÔNG PHẢI LÀ MỘT trùng lặp. Câu hỏi khác là về Android, rất nhiều về trình điều khiển JTD (tôi chưa từng sử dụng). Tôi đang đăng bình luận này để làm rõ, vì tôi đã có một bình luận nói rằng nó là một bản sao, đã bị xóa sau lời giải thích của tôi. – Solace
Mã ở đâu bạn đã tải Trình điều khiển 'MYSQL' –
Mọi người! Vấn đề không phải là về việc nhận được một kết nối 'null' nhưng về một giá trị trả về' null' từ việc thực thi phương thức 'Connection # getSchema'. –