在 Java 中将结果集从 class A 传输到 class B

Transfer ResultSet from class A to class B in Java

我正在使用 Java 中的 MySQL 数据库对 LoginForm 进行编程。一切正常,现在我想添加权限。如果有人登录,来自特定用户的数据将被插入到结果集中。问题是我需要将结果集提供给下一个 class 我在另一个 class 中拥有权限并且可以说出允许用户看到的内容。我唯一的线索是,如果我调用另一个 class,我会在其中发送它。

结果集

// That Code part is from Class A (In the Project LoginPage.java)
public void loginfunc() throws Exception {

    String userID = userIDField.getText();
    String password = String.valueOf((userPasswordField.getPassword()));
    Connection con = getConnection();
    try {
        PreparedStatement statementuser = con.prepareStatement("SELECT * FROM uprtable WHERE username = '"+userID+"'");
        //TODO transfer Resultset "result" to Class "WelcomePage"
        ResultSet result = statementuser.executeQuery();

我怎么叫对方class

if (result.getString("username").equals(userID));

if (result.getString("password").equals(password)) {
    frame.dispose();
    String userresult = result.getString("username");
    int rankresult = result.getInt("rank");
    WelcomePage welcomePage = new WelcomePage(result);
}

我得到的错误是

'WelcomePage()' in 'com.company.WelcomePage' cannot be applied to '(java.sql.ResultSet)'

从错误消息看来 WelcomePage class 没有可以接受 ResultSet 的构造函数。 您需要在 WelcomePage 中编写一个可以接受 ResultSet 的构造函数,默认构造函数不接受任何参数。

例如:

public class WelcomePage{
    private ResultSet resultSet;
   
    WelcomePage(ResultSet resultSet){
        this.resultSet=resultSet;
    }


}

PS:This方法会起作用,但最好在class中解析ResultSet,它首先被引用(Class A in this case), 获取所有需要的信息释放数据库资源然后将需要的数据以另一种方式传递给另一个class (Class B) e.g.在专用的 Java Bean 中。