我想将连接变量myConn传递给其他几个类。但是,当我
return myConn;
myConn无法解析为变量。这是代码:
import java.sql.*;
import javafx.application.Application;
public class MP {
public static void main(String[] args) {
try {
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xyz);
}
catch (Exception exc) {
exc.printStackTrace();
}
Application.launch(MPfxlogin.class, args);
}
public Connection getConn() {
return myConn;
}
}
我必须尝试通过使方法变为静态并添加静态变量来解决该问题:
import java.sql.*;
import javafx.application.Application;
public class MP {
static Connection myConn;
public static void main(String[] args) {
try {
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xyz);
}
catch (Exception exc) {
exc.printStackTrace();
}
Application.launch(MPfxlogin.class, args);
}
public static Connection getConn() {
return myConn;
}
}
现在,程序运行了,但是静态变量保持为空,因此保持不变
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xyz);
省略try-block并使用时会发生相同的问题
public static void main(String[] args) throws SQLException {
我怎样才能解决这个问题?帮助将不胜感激!
最佳答案
变量myConn
遮盖了静态变量myConn
。因此,您正在做的是-正在初始化一个名为myConn
的局部变量,而不是类变量。
只需删除(重新)在main
中声明的部分。
try {
//Initializes the static variable myConn
myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xyz);
}