【问题标题】:How to add results to an object with long list of fields?如何将结果添加到具有长字段列表的对象?
【发布时间】:2013-02-02 10:57:30
【问题描述】:

我有一个名为employee 的对象,它有很长的属性列表,我正在从数据库中检索值并需要将它们放入employee 对象中,我正在执行以下操作,但是由于代码太长,我想知道是否有什么捷径可走。

 Employee emp = new Employee();
        try {

             ps = con.prepareStatement("select * from Employee WHERE username = ?");

            ps.setString(1, username);
            ResultSet r = ps.executeQuery();
 if (r.next()) {

        // 12 lines to put values into employee object need to be shorter            
        emp.setID(r.getInt(1));
        emp.setTitle(r.getString(2));
        emp.setFname(r.getString(3));
        emp.setLname(r.getString(4));
        emp.setMobile(r.getString(5));
        emp.setPhone(r.getString(6));
        emp.setEmail(r.getString(7));
        emp.setPosition(r.getString(8));
        emp.setUsername(r.getString(9));
        emp.setPassword(r.getString(10));
        emp.setQuestion(r.getString(11));
        emp.setAnswer(r.getString(12));

 }
 }.....

【问题讨论】:

  • 切换到ORM框架
  • @JigarJoshi,你能给我举个例子吗?

标签: java database resultset


【解决方案1】:

使用 Apache Commons BeanProcessor。它有两个非常有用的方法,分别是 toBean 和 toBeanList。

在这种情况下,您只需这样做:

if (r.next()) {
    BeanProcessor bp = new BeanProcessor();
    emp = bp.toBean(r, Employee.class);
}

【讨论】:

【解决方案2】:

正如 Jigar Joshi 在 cmets 中提到的那样,Hibernate 这样的 ORM 框架将是一个不错的选择。

这是一个让您入门的示例。

http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/html_single/#hibernate-gsg-tutorial-basic-test-list

【讨论】:

  • 这并不是问题的真正答案。建议使用不同的技术。
  • 一种能够准确解决 OP 试图解决的问题的技术。
  • 这里仅提及最佳实践,因为@DanielMorgan 要求提供相同的示例。
猜你喜欢
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2019-11-24
  • 2016-11-08
相关资源
最近更新 更多