将JDBC ResultSet映射到对象 [英] Mapping a JDBC ResultSet to an object

查看:148
本文介绍了将JDBC ResultSet映射到对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个具有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆