【发布时间】:2015-10-30 11:26:21
【问题描述】:
我已成功从 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);
%>
【问题讨论】:
-
什么是空的?据我所知,您正在调用非常规命名的
LoadFromDatabase()方法,但实际上并没有对 reuslt 做任何事情。 (您还要吞下异常,而不是在每次调用时创建一个新列表,这似乎是个坏主意,但那是另一回事。) -
另一个非常糟糕的主意是扩展 ArrayList。这是没用的,而且会让你感到困惑。用户列表是
users.LoadFromDatabase()方法返回的列表。不是用户反对自己。所有这些实例变量都应该是方法的局部变量。 -
感谢您的回复。
标签: java postgresql arraylist data-retrieval