いつもお世話になっております。
下記コードでSQLを取得した結果をActionFormのセッターメソッドにセットし、
画面に表示したいのですが、DBから取得したカラム数が50個近mapから取得し
setterにセットする記述を50個程度作らないと思います。それは良いのですが、
必然だと思うのですが、daoから取得したmapをスマートにセッターにセットする
方法などありませんでしょうか?
よろしくお願いいたします。
java
1Daoクラス 2 3public static Map<String,String> getTest( DBAccess db, String sql ) throws Exception { 4 5 DBAccess.QueryResult ret=null; 6 LinkedHashMap<String,String> map = new LinkedHashMap<String,String>(); 7 8 ret = db.executeQuery( sql.toString() , null ); 9 10 ResultSet rec = ret.getResult(); 11 ResultSetMetaData md = rec.getMetaData(); 12 int columns = md.getColumnCount(); 13 14 while (rec.next()) { 15 for (int i = 1; i <= columns; ++i) { 16 map.put( md.getColumnName(i) , rec.getString(i) ); 17 } 18 } 19 20 21 return map; 22 23} 24
java
1actionクラス 2 3public class userConfirmAction extends Action { 4 5 // DBから画面の項目をdaoから取得する。 6 Map<String,String> test = dao.getTest(db, this.getSql()); 7 8 // アクションフォームにセット 9 _form.setId(test.get("id")); 10 _form.setName(test.get("name")); 11 _form.setTel(test.get("tel")); 12 _form.setAddress(test.get("address")); 13 //......ほかにもsetter続く 14 15}
java
1Actionformクラス 2 3public class userActionForm extends ActionForm { 4 5 private String id = null; 6 7 public String getId() { 8 return id; 9 } 10 11 public void setId(String id) { 12 this.id = id; 13 } 14 //...ほかにも続く 15 16} 17
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。