2013-02-18 8 views
5

Mam obiekt o nazwie pracownik, który ma długą listę atrybutów, jestem pobieranie wartości z bazy danych i trzeba umieścić je w obiekcie pracownika, robię co następuje, ale ponieważ kod jest tak długo zastanawiam się, czy istnieje jest dowolnym skrótem do niego.Jak dodać wyniki do obiektu z długą listą pól?

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

przełącznik do ORM ramowej –

+0

@JigarJoshi, dałbyś mi przykład? –

Odpowiedz

2

Użyj Apache Commons BeanProcessor. Ma dwie BARDZO użyteczne metody tylko dla tego, które nazywa się toBean i toBeanList.

W tym przypadku, po prostu to zrobić:

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

Świetnie, jaki jest wymagany jard lub zależność, nie mogłem go znaleźć, –

+0

Oto projekt domu: http://commons.apache.org/dbutils/ Możesz pobrać plik jar, klikając na pobieranie i pobieranie plików binarnych. – stepanian

+0

pleaseh spójrz na następujące pytanie http://stackoverflow.com/questions/14929818/how-to-copy-resultset-into-object –

0

Jak wspomniano przez Jigar Joshi w komentarzach, framework ORM takich jak Hibernate byłby dobrym wyborem tutaj.

Oto przykład na dobry początek.

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

+0

To nie jest tak naprawdę odpowiedź na pytanie. Jest to zalecenie użycia innej technologii. – stepanian

+1

Technologia, która rozwiązuje dokładnie problem, który OP próbuje rozwiązać. – Samee

+0

Tylko wspominając o najlepszej praktyce, ponieważ @DanielMorgan poprosił o przykład tego samego. –

Powiązane problemy