2013-02-18 99 views
5

我有一個叫做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)); 

} 
}..... 
+0

開關ORM框架 – 2013-02-18 03:34:02

+0

@JigarJoshi,你會給我一個例子嗎? – 2013-02-18 03:36:47

回答

2

使用Apache下議院BeanProcessor。它有兩個非常有用的方法,這個叫做toBean和toBeanList。

在這種情況下,你會簡單地做到這一點:

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

這是什麼是它需要的jar或依賴項,我找不到它, – 2013-02-18 04:15:39

+0

這裏是項目主頁:http://commons.apache.org/dbutils/您可以通過點擊下載和下載二進制文件下載jar文件。 – stepanian 2013-02-18 04:21:53

+0

pleaseh看看下面的問題http://stackoverflow.com/questions/14929818/how-to-copy-resultset-into-object – 2013-02-18 05:06:10

0

正如意見中提到的Jigar喬希,一個ORM框架,如Hibernate會在這裏一個不錯的選擇。

下面是一個讓你開始的例子。

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

+0

這不是問題的答案。建議使用不同的技術。 – stepanian 2013-02-18 03:45:07

+1

一種技術,可以準確解決OP正試圖解決的問題。 – Samee 2013-02-18 03:48:03

+0

這裏只提及最佳實踐,因爲@丹尼爾摩根要求一個相同的例子。 – 2013-02-18 03:48:27