2013-02-18 4 views
5

属性の長いリストを持つemployeeというオブジェクトがあります。データベースから値を取得して従業員オブジェクトに入れる必要がありますが、次のようにしていますが、コードが長すぎるため、それへのショートカットです。コメントでJigar女子で述べたようにフィールドの長いリストを持つオブジェクトにどのように結果を追加するのですか?

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フレームワーク –

+0

@JigarJoshiへの切り替えを、あなたは私の例を与えるだろうか? –

答えて

2

使用のApache CommonsのBeanProcessor。これには、toBeanとtoBeanListという2つの非常に便利なメソッドがあります。この場合

、あなたは単にこれを行うだろう:

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

必要なjarファイルまたは依存ファイルは何ですか?見つからなかったのですが、 –

+0

プロジェクトホームはhttp://commons.apache.org/dbutils/バイナリのダウンロードとダウンロードをクリックしてjarファイルをダウンロードできます。 – stepanian

+0

pleasehは次の質問をご覧くださいhttp://stackoverflow.com/questions/14929818/how-to-copy-resultset-into-object –

0

、などHibernateなどORMフレームワークは、ここに選ぶとよいでしょう。

ここでは、開始するための例を示します。

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

+0

これは本当の質問に対する答えではありません。別のテクノロジを使用することをお勧めします。 – stepanian

+1

OPが解決しようとしている問題を正確に解決する技術。 – Samee

+0

@DanielMorganは同じ事例を求めていたので、ここでベストプラクティスを言及するだけです。 –

関連する問題