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

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

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

    翻譯:iBATIS 3.0 草案——接口綁定

    Posted on 2007-06-19 17:40 Tommy Jian 閱讀(1284) 評論(4)  編輯  收藏 所屬分類: iBATIS

    接口綁定

       隨著Java 5的推廣,我們有機會來改善用戶體驗。其中最重要的是借助Java 5可以消除令人生惑的類型轉換,可以消除SQL映射基于字符的調用方式。舉例來說,現在在調用SQL映射的時候是這樣的:

    Employee employee = (Employee)sqlMapper.queryForList("getEmployee", 5);
    //...and...
    List employees = sqlMapper.queryForList("listAllEmployees");

       問題是很明顯的。第一,上面的兩個例子中被映射的語句的名稱都是基于字符串的,而這很容易導致錯誤。這種方式也不會得到IDE工具、編譯器的支持和管理。

       第二個問題是存在參數和返回值類型安全問題。在第一個例子中,誰能保證參數的類型一定是Integer?而誰又能保證您得到的返回值一定是Employee類型呢?這里,編譯器也不會給出任何償錯誤報告和提示。而只有運行時異常會被拋出。

       最后,在集合的例子中問題也是相同的。在運行前,您可能會獲得Dogs的集合,而不是Employees。

       總之,這種方式雖然比JDBC強,但是也讓人倍感難受,還是存在改善的空間。

       在Java 5中我們可以充分使用范型來規范集合類型。這樣,我們不需要進行特殊的配置就可以為集合類型建立一致的API。我們不需要在XML文件中聲明類型,不需要通過字符名稱來調用被映射的語句,相反,我們可以充分利用表達好且類型安全的接口類型。沒有什么新東西需要學習,只是普通的接口就可以了。

    public interface EmployeeMapper

      Employee getEmployee (int employeeId); 
      List listAllEmployees();
    }

       這就夠了!iBATIS來幫我們實現這個接口。

       現在我們可以以一種更加簡潔和安全的方式來調用被映射的語句了。

    Employee emp = empMapper.getEmployee(5);
    //...and...
    List employees = empMapper.listAllEmployees();

       在上面的調用中沒有類型轉換、沒有字符串,而且參數和返回值的類型是、安全的。額外的代碼就是針對接口使用XML或者Java的標識進行配置。最多我們只需要配置SQL語句、需要進行重載的參數或者返回值類型。

       接口描述了所需要的一切。

    • 語句的名稱(默認情況下與方法的名字一致)
    • 參數類型(如果存在的話)
    • 返回值類型(包括范型集合的元素的類型)

       而其中最有趣的就是我們可以基于方法名稱這樣的約定來生成SQL映射。以后關于配置的章節中將詳細討論這些細節。

       接口綁定的方法使得諸如Spring這樣的框架將映射類注入其他類變得容易,同時也不需要將事務管理的過多細節公開。

    Feedback

    # re: 翻譯:iBATIS 3.0 草案——接口綁定  回復  更多評論   

    2007-06-19 22:28 by Anders小明
    這個好,非常期待!

    # re: 翻譯:iBATIS 3.0 草案——接口綁定  回復  更多評論   

    2007-06-19 23:54 by search-computer
    不錯

    # re: 翻譯:iBATIS 3.0 草案——接口綁定  回復  更多評論   

    2007-06-20 01:26 by 永恒
    統一的mapper通過接口細化為多個mapper,中間加了一層。的確好
    但也沒有質的改變啊

    # re: 翻譯:iBATIS 3.0 草案——接口綁定  回復  更多評論   

    2007-06-20 07:55 by Tommy Jian
    @永恒
    加了一層之后,一方面可以克服原來類型不安全和SQL映射使用純字符串的問題,另外可以在這一層上使用annotation來配置。
    主站蜘蛛池模板: 97在线免费视频| 在线免费视频你懂的| 黄网站色在线视频免费观看| 国产V亚洲V天堂无码久久久| 成全视成人免费观看在线看| 久久久久亚洲爆乳少妇无| 一级特黄录像视频免费| 久久久久国产亚洲AV麻豆| 久久九九免费高清视频| 亚洲成AV人在线观看天堂无码| 国产真人无码作爱视频免费| 亚洲热妇无码AV在线播放| 久9久9精品免费观看| 亚洲国产人成在线观看| 成人无遮挡裸免费视频在线观看| 国产日本亚洲一区二区三区| 免费鲁丝片一级观看| 欧洲精品码一区二区三区免费看| 久99精品视频在线观看婷亚洲片国产一区一级在线| 美女视频黄频a免费大全视频| 亚洲国产中文v高清在线观看| 黄视频在线观看免费| 亚洲视频在线播放| 最新猫咪www免费人成| 男女超爽视频免费播放| 亚洲乱色熟女一区二区三区丝袜| 中文无码成人免费视频在线观看| 久久久久亚洲AV无码观看| 性色av免费观看| 国产美女视频免费观看的网站| 亚洲不卡av不卡一区二区| 国色精品卡一卡2卡3卡4卡免费| 亚洲风情亚Aⅴ在线发布| 亚洲午夜国产精品无码老牛影视| 亚洲免费观看在线视频| 久久久亚洲精华液精华液精华液 | 亚洲午夜久久久精品影院| 国产99视频精品免费观看7| 黄网站色成年片大免费高清| 午夜亚洲国产理论秋霞| 日韩免费观看一级毛片看看|