<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,  comments - 15,  trackbacks - 0

    上一節:http://m.tkk7.com/zhanglongsr/articles/190616.html

    1.1. ResultSetDynaClass

    ?????? 有些時候,我們會遇到需要一個 JavaBean 來持久化多個數據庫表的情況,像上面提到的報表的例子。假如 Ta? 、 Tb Tc 三個表分別代表 A 、 B 、 C3 個報表,現在假設,如果要減少開發人員的代碼編寫,而且表結構有著一定的相似性,那么我們會如何做?就目前來看,最簡單的莫過于減少表的持久化工作,可以讓一個 JavaBean 來維護多個表的持久化。

    ?????? 我們可以使用 DynaBean 構建動態的數據庫領域模型,但現在我們面臨的一個問題是我們如何獲得有效的數據庫表的相關字段來構建這個 DynaBean ?

    ?????? ResultSetDynaClass 封裝了 ResultSet ,它能夠幫助我們從一 ResultSet 中取出對應的一組屬性。

    ?????? 另外, ResultSetDynaClass 能根據執行的 sql 結果集自動為用戶返回一組 DynaBean ,從而減少用戶創建 DynaBean 的工作量。

    ??????

    示例代碼:

    ?????? ? Connection conn = ...;

    ? ??? ??Statement stmt = conn.createStatement();

    ? ??? ??ResultSet rs = stmt.executeQuery

    ????? ("select account_id, name from customers");

    ? ??? ??Iterator rows = (new ResultSetDynaClass(rs)).iterator();

    ? ??? ??while (rows.hasNext()) {

    ????? DynaBean row = (DynaBean) rows.next();

    ????? System.out.println("Account number is " +

    ?? ??????????????????????row.get("account_id") +

    ???????????????????????? " and name is " + row.get("name"));

    ? ??? ??}

    ? ??? ??rs.close();

    1.2. LazyValidatorActionForm??

    從某種意義上來說, LazyValidatorActionForm 也是一種 DynaBean ,因為 LazyValidatorActionForm 繼承于 LazyValidatorForm , LazyValidatorForm 實現了 DynaBean 接口。但是從開發的層次角度考慮,我還是單獨把它提出來。

    ?????? API 中可以觀察到, LazyValidatorActionForm 繼承于 LazyValidatorForm ,撇開 LazyValidatorActionForm validate() 方法, LazyValidatorActionForm 并沒有提供其他方法,那么 LazyValidatorActionForm 的動態特性完全是從 LazyValidatorForm 繼承而來。

    ?????? 我們現在虛擬一個需求環境,假設有一個學生成績錄入頁面,課程構成了頁面的列,學生的各科成績構成了頁面的行,從而我們知道,頁面表達學生成績的文本框應該是動態生成的,當然表達學生成績的文本框的名稱與學生和課程有關,但現在我們忽略這一點,只是單純的從頁面的 Form 的解析考慮。

    ?????? 頁面控件的解析可用代碼表示如下:

    ?

    ?

    代碼示例:

    ?????? // 假設通過邏輯處理,得到頁面一個學生的一門課程的成績控件名稱

    ?????? String control1 = “score_student1_course1”;

    ?????? String control2 = “score_student1_course2”;

    ??????

    ?????? String value1 = “85”;

    ?????? String value2 = “86”;

    ?

    ?????? LazyValidatorActionForm lazyForm = new LazyValidatorForm();

    ?????? lazyForm.set(control1, value1);

    ?????? lazyForm.set(control2,value2);

    ?

    ?????? // 如果頁面提交后,你可以這樣獲取

    ?????? Map map = lazyForm. getMap();

    ??????

    ?????? // 然后你就可以對這個 map 進行處理,這要看你的處理邏輯嘍!

    ?

    ? ?

    ?

    ?????? ???????????????????????????????????????????????????????????????????????????? 作者:張興龍

    posted on 2008-06-17 15:36 zhangxl 閱讀(191) 評論(0)  編輯  收藏 所屬分類: common

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(17)

    隨筆檔案(28)

    文章分類(30)

    文章檔案(30)

    相冊

    收藏夾(2)

    hibernate

    java基礎

    mysql

    xml

    關注

    壓力測試

    算法

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 96299
    • 排名 - 601

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲色精品三区二区一区| 亚洲系列中文字幕| 国产无限免费观看黄网站| 国产jizzjizz视频免费看 | 亚洲熟妇av一区二区三区下载| 久久免费视频99| 亚洲欧洲日韩在线电影| 99久久国产热无码精品免费 | 亚洲男人的天堂在线va拉文| 免费的黄网站男人的天堂| 亚洲人成网站色在线入口| a在线视频免费观看在线视频三区| 亚洲免费无码在线| 国产免费阿v精品视频网址| 亚洲影院在线观看| 青草草色A免费观看在线| 亚洲av无码偷拍在线观看| 亚洲高清免费视频| 男人的天堂网免费网站| 亚洲一区二区三区播放在线| 亚洲第一成年免费网站| 亚洲av成人中文无码专区| 亚洲精品国精品久久99热一| 91视频免费网址| 国产AV无码专区亚洲AV麻豆丫| 久久亚洲色一区二区三区| 19禁啪啪无遮挡免费网站| 亚洲欧洲日产国码久在线| 精品亚洲一区二区三区在线播放| 免费的全黄一级录像带| 亚洲综合校园春色| 国产成人A亚洲精V品无码| 免费不卡视频一卡二卡| 日韩成人毛片高清视频免费看| 亚洲人成在线播放网站岛国| 成年丰满熟妇午夜免费视频| 国产在线播放线91免费| 亚洲第一男人天堂| 久久精品亚洲综合| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲国产精品网站久久|