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

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

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

    幫助IT團隊快速構(gòu)建符合jt808協(xié)議部標的基于java技術(shù)的GPS和視頻平臺(2379423771@qq.com)

    XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強


    ? Ibatis在項目開發(fā)中,無論是企業(yè)管理還是電子商務(wù),Productivity作用都非常的大,淋漓盡致的體現(xiàn)了模板的好處,將sql的繁雜的語法和查詢條件參數(shù)數(shù)據(jù)清晰的剝離出來,無論是開發(fā)速度和代碼的易維護性上,都是無可比擬的。

    ? 但是其中有一個重大的缺陷就是數(shù)據(jù)庫分頁查詢了,這個就不用多說了,參見 由ibatis引起的框架設(shè)計思考

    ? 喜歡Hibernate的人,可以先去看:Ibatis VS Hibernate,? 我也喜歡Hibernate,但重要的是要解決項目問題,而不是無休無止的爭論!

    ? 不知道為什么,Ibatis對此無動于衷,反而采取了回避的態(tài)度,只是將分頁的方法depreciated,草草了事。

    ? 我對于ibatis的源碼進行了改造,起名為XIbatis, 改造主要從一下幾個方面入手:
    ??????
    ??1.提供與具體數(shù)據(jù)庫相關(guān)的分頁回調(diào)接口,調(diào)用者可以注入自己的分頁實現(xiàn),并注入到Ibatis中,在分頁時進行回調(diào)。
    ????????

    ?1 public ? interface ?Paginator? {
    ?2 ???? /**
    ?3 ?????*?根據(jù)原始的sql和pageNo,?pageSize生成分頁的sql.
    ?4 ?????*? @param ?sql
    ?5 ?????*? @param ?pageNo??當前頁號
    ?6 ?????*? @param ?pageSize??每頁的數(shù)據(jù)條數(shù)
    ?7 ?????*? @return ?分頁sql
    ???????????????? @author? http://www.tkk7.com/oneeyewolf

    ?8 ????? */

    ?9 ???? public ?String?getPaginatedSql(String?sql,? int ?pageNo,? int ?pageSize);
    10 ????
    11 }

    ????? XIbatis代碼內(nèi)內(nèi)置了Oracle 和 MySql分頁的兩種實現(xiàn):


    2.與spring進行了集成,可以靈活的注入不同數(shù)據(jù)庫的分頁實現(xiàn)


    ??3 .由于在原有的接口中,新增了分頁查詢的方法,所以需要擴展spring 對ibatis的SqlMapClientTemplate的封裝。
    ??????同時XIbatis向后兼容,保留了Ibatis的原來的所有方法。

    ?????

    4.在ibatis的接口中增加了新的分頁的方法, :
    ???????

    ?1 ? /**
    ?2 ???*?分頁查詢
    ?3 ???*? @param ?id??The?name?of?the?statement?to?execute.
    ?4 ???*? @param ?parameterObject??查詢條件對象
    ?5 ???*? @param ?pageNo??當前頁號
    ?6 ???*? @param ?pageSize??每頁顯示的數(shù)據(jù)條數(shù)
    ?7 ???*? @return
    ?8 ???*? @throws ?SQLException
    ??????????* @author? http://www.tkk7.com/oneeyewolf
    ?9 ??? */

    10 ??PageResult?queryForPageResult(String?id,?Object?parameterObject,? int ?pageNo,? int ?pageSize)? throws ?SQLException;
    11


    5.最后的IbatisDao的實現(xiàn):

    ?1 public ? class ?DAOIbatisImpl? extends ?CustomIbatisDaoSupport? {
    ?2
    ?3 ???? /**
    ?4 ?????*?分頁查詢
    ?5 ?????*? @param ?id
    ?6 ?????*? @param ?params??查詢參數(shù),里面必須要有一個pageNo的頁號參??
    ?7 ?????*? @param ?pageSize
    ?8 ?????*? @return
    ?9 ????? */

    10 ???? public ?PageResult?queryByPagination(String?id,?Map?params,? int ?pageNo,? int ?pageSize)? {
    11
    12 ???????? return ?getSqlMapClientTemplate().queryForPageResult(id,?params,?pageNo,?pageSize);
    13 ????}

    14 ????
    15 ???? /**
    16 ?????*?不分頁查詢
    17 ?????*? @param ?id??查詢ID
    18 ?????*? @param ?params??查詢參數(shù)
    19 ?????*? @return
    20 ????? */

    21 ???? public ?List?queryForList(String?id,?Map?params) {
    22 ???????? return ? super .getSqlMapClientTemplate().queryForList(id,?params);
    23 ????}

    24 }

    6.源代碼文件下載, 點擊這里>>
    ?? 包含:spring配置文件、example for Dao test、source code.
    ????
    ?7.RoadMap
    ??? XIbatis未來將著手對于sql template語法進行改造,已能夠適應(yīng)電子商務(wù)網(wǎng)站復(fù)雜、多樣查詢的要求。

    ????有改造需求的人,可以在這里提出來。

    ???
    20人合租600元/年

    posted on 2008-12-01 11:51 Speed 閱讀(4285) 評論(5)  編輯  收藏 所屬分類: 框架設(shè)計J2EEHibernate & Ibatis

    評論

    # re: XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強 2008-12-01 16:09 charlie's logic

    good job.  回復(fù)  更多評論   

    # re: XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強 2008-12-01 17:10 tp

    有前途,如果列中帶有函數(shù)就不建議這么搞了。  回復(fù)  更多評論   

    # re: XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強 2008-12-02 14:06 stone2083

    想法是好的,做法是不可取的。
    任何對第三方組件的擴展,需要遵循開放-封閉原則:只能尋找組件的擴展點進行功能擴展,不允許直接修改源碼。

    試想一下,你修改了源代碼,以后如何解決與官方網(wǎng)站版本升級的同步問題?
    沒有團隊敢使用你的包。

    很早之間,我就有這個想法。但是發(fā)覺MappedStatement,SqlMapExecutorDelegate都是面向?qū)崿F(xiàn)編程;
    并且SqlMapClient也是通過:
    public SqlMapConfiguration() {
    errorContext = new ErrorContext();
    delegate = new SqlMapExecutorDelegate();
    typeHandlerFactory = delegate.getTypeHandlerFactory();
    client = new SqlMapClientImpl(delegate);
    registerDefaultTypeAliases();
    }
    直接new出來的。
    所以,似乎找不到擴展的地方來實現(xiàn)“分頁”的需求。

    不知道大家是否有更好的方案,歡迎討論。  回復(fù)  更多評論   

    # re: XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強 2008-12-02 15:23 Speed

    @stone2083
    good point, actually you need to balance the pros and cons for your own team. cause it is open source, so if it do not fully match your way, just modify the code to facilitate your application.   回復(fù)  更多評論   

    # re: XIbatis 發(fā)布-對ibatis的分頁查詢進行了擴展和功能增強 2009-06-13 16:51 王兵

    @Speed
    ibatis自身提供的分頁確實是不能使用
    就這個來說我還是比較喜歡使用hibernate
      回復(fù)  更多評論   

    導(dǎo)航

    留言簿(15)

    隨筆分類

    值得一看的博客

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产成人免费福利网站| 最近中文字幕国语免费完整| 成人免费视频一区| 亚洲成aⅴ人在线观看| 91视频免费网址| 亚洲狠狠狠一区二区三区| 久久ww精品w免费人成| 2022年亚洲午夜一区二区福利| 男女午夜24式免费视频| 亚洲国产精品热久久| 91制片厂制作传媒免费版樱花| 亚洲伊人tv综合网色| 成年黄网站色大免费全看| 国产成人精品亚洲日本在线| 性生交片免费无码看人| 亚洲欧洲无码AV不卡在线| 四虎永久在线精品免费观看地址| 美女视频黄a视频全免费网站色| 亚洲日韩在线中文字幕第一页 | 猫咪免费人成网站在线观看| 久久久影院亚洲精品| 99在线观看视频免费| CAOPORM国产精品视频免费| 亚洲成aⅴ人片久青草影院| 曰批全过程免费视频观看免费软件| 国产男女猛烈无遮挡免费网站| 黄页免费在线观看| 美国免费高清一级毛片| 亚洲欧洲精品久久| 亚洲精品午夜无码专区| 免费黄色app网站| 国产精品免费精品自在线观看| 美女巨胸喷奶水视频www免费| 亚洲欧美日韩一区二区三区在线| 亚洲va无码专区国产乱码| 免费不卡中文字幕在线| 免费阿v网站在线观看g| 免费无码又爽又刺激高潮视频| 一区二区三区免费看| 国产情侣激情在线视频免费看| 国产美女视频免费观看的网站|