我是 Java 新手,我需要您有关 Java 到 Oracle DB 连接的指导。所以我现在正在做java fx,并且正在为我的程序实现MVC。所以这是 3 个相关的类,
Util/ConnectionDB.java
public class ConnectionDB {
private static final String DB_USER = "WELTESADMIN";
private static final String DB_PASS = "123pass";
private static final String DB_NAME = "WEN";
private static Connection conn = null;
public boolean openConnection(){
boolean result;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.100.195:1521:"+DB_NAME+"",DB_USER,DB_PASS);
if (conn != null){
System.out.println("CONNECTION DONE");
}
result = true;
} catch (Exception e) {
e.printStackTrace();
result = false;
}
return result;
}
}
Controller /Main.java
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("../View/login.fxml"));
primaryStage.setTitle("Weltes Oxygen Management");
primaryStage.setScene(new Scene(root));
primaryStage.show();
testConnection();
}
public void testConnection(){
ConnectionDB connect = new ConnectionDB();
connect.openConnection();
}
public static void main(String[] args) {
launch(args);
}
}
Controller /LoginController.java
public class LoginController {
@FXML private TextField username;
@FXML private PasswordField password;
@FXML private Button loginButton;
@FXML private Label labelStatus;
@FXML private void handleLoginButton() throws InterruptedException {
Thread.sleep(1000);
labelStatus.setText("Connected...");
ConnectionDB conn = new ConnectionDB();
}
}
所以我需要使用 conn 变量来建立准备好的语句。如何在程序的整个 session 期间使用连接?
提前非常感谢
最佳答案
最简单的方法是您可以使 ConnectionDB 单例:
public class ConnectionDB {
private static ConnectionDB instance;
public static ConnectionDB getInstance(){
if(instance == null) {
instance = new ConnectionDB();
Class.forName("oracle.jdbc.driver.OracleDriver");
instance.conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.100.195:1521:"+DB_NAME+"",DB_USER,DB_PASS);
//...... try-catch or do your stuff
}
return instance;
}
private ConnectionDB(){};
private Connection conn;
public Connection getConnection(){
return conn;
}
}
然后,每当您需要数据库连接时,只需调用:
ConnectionDB.getInstance().getConnection();
关于java - 使用在另一个文件中建立的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34062308/