一尘不染

将JDBC ResultSet映射到对象

mysql

我有一个具有16个属性的用户类,例如名,姓,dob,用户名,密码等。这些都存储在MySQL数据库中,当我要检索用户时,我使用ResultSet。我想将每个列映射回用户属性,但是我的操作方式似乎效率很低。例如我在做:

//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);
}

即我检索所有列,然后通过将所有列值插入到User构造函数中来创建用户对象。

有谁知道更快,更整洁的方法吗?


阅读 389

收藏
2020-05-17

共1个答案

一尘不染

无需将resultSet值存储到String中,也无需再次设置到POJO类中。而是在检索时设置。

或者最好的方法是切换到诸如hibernate的ORM工具而不是JDBC,后者将您的POJO对象直接映射到数据库。

但截至目前,使用此:

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);
}
2020-05-17