我已成功从 PostgreSQL 数据库中检索到以下类中的数据。 PostgreSQL 中的表数据行添加在ArrayList<> userlist
中.
我分享了更正后的代码。
class UserList extends ArrayList<User> {
// as in comments said it seems really bad idea is to extend ArrayList. So, avoid it!
}
用户类是:
public class User {
private String firstName;
private String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public void calculateSimilarityUser(User u){
.... //some codes
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
UserDAO 类是:
public class UserDAO {
static Connection currentCon = null;
static ResultSet rs = null;
private ArrayList<User> userlist = new ArrayList<>();
public ArrayList<User> LoadFromDatabase(){
PreparedStatement userinfoStmt = null;
String loadUsersInfo = "SELECT * FROM userinfo";
try {
currentCon = ConnectionManager.getConnection();
userinfoStmt = currentCon.prepareStatement(loadUsersInfo);
rs = userinfoStmt.executeQuery();
while (rs.next()) {
User us = new User(rs.getString("firstname"), rs.getString("lastname"), rs.getInt("index"));
userlist.add(us);
}
userinfoStmt.close();
currentCon.close();
} catch (Exception e) {
}
return userlist;
}
index.jsp
<%
UserDAO inf= new UserDAO();
ArrayList<User> userList = inf.LoadFromDatabase();
Recommender rc = new Recommender(userList);
%>
最佳答案
扩展 ArrayList 在您的情况下没有任何意义。基本上您可以将您的类命名为 UserDAO
。并且无需创建类级变量,您可以创建局部变量。
public class UserDAO { // no need to extend and changed name to UserDAO
public List<User> retainTopUsersItems(int maxNumOfReturnedResources, List<User> userList) {
List<User> retainList = new ArrayList<User>();
for (int i = 0; i < maxNumOfReturnedResources; i++) {
retainList.add(userList.get(i));
}
return retainList;
}
public List<User> loadFromDatabase() {
Connection userinfoCon = null;
ResultSet userinfoRS = null;
List<User> userlist = new ArrayList<>();
在您的 jsp 中使用从方法中检索的列表。
<%
// UserList users = new UserList();
UserDAO inf= new UserDAO();
List<User> userList = inf.loadFromDatabase(); // See the changes
Recommender rc = new Recommender(userList); // Change constructor definition in your Recommender
%>
注意:不要使用您的异常,抛出它或记录它?
关于java - 使用从其他类的方法中检索到的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31870583/