[英]Getting variable value from another class
因此,我有一個名為Members
的類,還有另一個名為DBConnect
類,該類將連接到數據庫,然后將數據庫中的值存儲到Members
類。 然后,我想在另一個名為Controller
類中使用來自Members
類的值。 但是,我在Controller
類中創建了Object的新實例,如果從那里使用get()
方法,它將導致返回null
。
但是,如果我在DBConnect
類中執行所有操作,則可以。 它將返回名字而不是null
Members
等級
package Database;
public class Members {
private String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
DBConnect
類
package Database;
import java.sql.*;
public class DBConnect {
private Connection connection;
private Statement statement;
private ResultSet resultSet;
Members members = new Members();
public DBConnect() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/finance", "root", "");
statement = connection.createStatement();
System.out.println("Successfully connected to DATABASE.");
} catch (Exception ex) {
System.out.println("ERROR: Can't connect to the Database! -> " + ex);
}
}
public void getData(int id) {
try {
String query = "select * from Members where MembersId = '" + id + "'";
resultSet = statement.executeQuery(query);
while (resultSet.next()) {
members.setId(resultSet.getInt("MembersId"));
members.setFirstName(resultSet.getString("MembersFirstName"));
members.setLastName(resultSet.getString("MembersLastName"));
members.setPosition(resultSet.getString("MembersPosition"));
members.setHourlyRate(resultSet.getDouble("MembersHourlyRate"));
members.setGraduated(resultSet.getString("MembersGraduated"));
members.setLanguages(resultSet.getString("MembersLanguages"));
members.setCountry(resultSet.getString("MembersCountry"));
members.setCity(resultSet.getString("MembersCity"));
members.setAddress(resultSet.getString("MembersAddress"));
}
}catch (Exception ex) {
System.out.println("Error: " + ex);
}
}
}
Controller
類
package sample;
import Database.DBConnect;
import Database.Members;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.shape.Circle;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable {
private DBConnect dbConnect;
private Members members;
@FXML
private HBox sidebarMembers;
@FXML
private void openSidebarMembers(MouseEvent event) throws IOException {
dbConnect = new DBConnect();
dbConnect.getData(2);
members = new Members();
if (event.getSource() == sidebarMembers) {
System.out.println(members.getFirstName());
}
}
據我了解,當您創建一個新對象時,它將導致將所有變量初始化為0。除了使它們成為靜態對象之外,我還應該如何訪問這些值?
所以我的問題是,我怎么能訪問我設置為我的價值觀Members
類從DBConnect
類在我的Controller
類?
在DbConnect類中,將getData方法的返回類型更改為Member。
public Member getData(int id)
現在,您可以從控制器訪問該成員
Member member = dbConnect.getData(2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.