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

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

问题描述

我有一个用户类,它有 16 个属性,比如名字、姓氏、dob、用户名、密码等……这些都存储在 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);
} 

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

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.

或者最好的方法是切换到像 hibernate 这样的 ORM 工具,而不是 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天全站免登陆