我在ubuntu 18.04.3上使用OpenJDK11和Netbeand IDE 11.0

我有一种方法可以将应用程序连接到数据库,就像这样

Connection connection ;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";

public boolean Conexion(String user,String pass){
    try {
        Class.forName(driver);
        connection = (Connection) DriverManager.getConnection(url,user,pass);
        System.out.println(connection);
        return true;
    } catch (ClassNotFoundException | SQLException ex) {
        return false;
    }
}


我也有另一种方法来获得连接

public Connection getConnection(){
    return connection;
}


但是当我尝试这样做时

public class principal extends Conexion {
public static void main(String[] args) {
    if (new Conexion().Conexion("root", "")) {
        System.out.println(new Conexion().getConnection());
    }
}
}


我得到这个输出

run:
com.mysql.jdbc.JDBC4Connection@4141d797
null
BUILD SUCCESSFUL (total time: 2 seconds)


我使用连接方法作为登录名,
该用户有一个登录屏幕,您必须在其中输入您的用户名和密码,如果该用户在xampp服务器中注册,则可以输入,并且在示例中,我输入了xampp的用户名和默认密码,起初它可以工作,但是getConnection方法返回null,我不明白为什么。

谢谢您的时间。

最佳答案

考虑这段代码

if (new Conexion().Conexion("root", "")) {
    System.out.println(new Conexion().getConnection());
}


第一个Conexion对象与第二个对象不同-因此getConnection()的返回值尚未初始化

09-05 17:38