将JDBC ResultSet映射到对象 [英] Mapping a JDBC ResultSet to an object
问题描述
我有一个具有16个属性的用户类,例如firstname,lastname,dob,username,password等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每个列映射回用户属性,但我这样做的方式看起来非常低效。
例如我在做:
I have a user class that has 16 attributes, things such as firstname, lastname, dob, username, password etc... These are all stored in a MySQL database and when I want to retrieve users I use a ResultSet. I want to map each of the columns back to the user attributes but the way I am doing it seems terribly inefficient. For example I am doing:
//ResultSet rs;
while(rs.next()) {
String uid = rs.getString("UserId");
String fname = rs.getString("FirstName");
...
...
...
User u = new User(uid,fname,...);
//ArrayList<User> users
users.add(u);
}
即我检索所有列,然后通过插入所有列来创建用户对象用户构造函数中的值。
i.e I retrieve all the columns and then create user objects by inserting all the column values into the User constructor.
有没有人知道更快,更整洁的方式吗?
Does anyone know of a faster, neater, way of doing this?
推荐答案
无需将resultSet值存储到String中并再次设置为POJO类。而是在您检索时设置。
No need of storing resultSet values into String and again setting into POJO class. Instead set at the time you are retrieving.
或者最好的方法是切换到ORM工具,如hibernate而不是JDBC,将POJO对象直接映射到数据库。
Or best way switch to ORM tools like hibernate instead of JDBC which maps your POJO object direct to database.
但截至目前使用此:
List<User> users=new ArrayList<User>();
while(rs.next()) {
User user = new User();
user.setUserId(rs.getString("UserId"));
user.setFName(rs.getString("FirstName"));
...
...
...
users.add(user);
}
这篇关于将JDBC ResultSet映射到对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!