不做浮躁的人
          正在行走的人...
          posts - 171,  comments - 51,  trackbacks - 0
          在我前一篇blog中,我大概介紹了下Flexorm的基本用法。現在由于要在一個項目中進行使用,下午花了些時間大概看看。

          flexorm盡管沒有查詢語言,但是它的Criteria做的基本上也能滿足要求了,比如eq,like以及and,or的Restriction都做了。畢竟用在客戶端的flexorm不會很復雜。但是flexorm沒有做pagnation。沒有充分利用sqlite的limit。如果我們的數據到了10萬條,每次檢索還是費時費力,有必要利用limit語法做分頁。

          因此,我首先修改代碼來計算count。

          1、我原計劃繼承SelectCommand來實現一個SelectCountCommand的類,結果發現hack代碼太多,不如直接在SelectCommand上增加一個方法,因為count對比一般的select無非是select進行改變和去掉orderby。增加以下方法:

          public function excuteCount():void {
             if (_changed)
              prepareStatement();
             _statement.text=_statement.text.replace(/select.*?from/gi, "select count(*) as cnt from").replace(/order\s*by/gi, '');
             if (_debugLevel > 0)
              debug();
             _statement.execute();
             if (_responder == null)
              _result=_statement.getResult().data;
            }

          2、修改SelectCommand類后,自然要修改EntityManager類,提供查詢Count的方法。

          public function fetchCriteriaCountResult(crit:Criteria):int {
             var selectCommand:SelectCommand=crit.entity.selectCommand.clone();
             selectCommand.setCriteria(crit);
             selectCommand.excuteCount();
             var cnt:int=(selectCommand.result && selectCommand.result.length > 0) ? selectCommand.result[0].cnt : 0;
             clearCache();
             return cnt;
            }

          測試樣例代碼:
          var c:Criteria=entityManager.createCriteria(IaUser);
              c.addEqualsCondition("name", "張三");
             var cnt:int=entityManager.fetchCriteriaCountResult(c) ;
              users=entityManager.fetchCriteria(c)

          下一篇博客將實現Criteria方式的具體分頁代碼...
          posted on 2010-12-10 14:56 不做浮躁的人 閱讀(1338) 評論(0)  編輯  收藏 所屬分類: air

          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丰县| 海宁市| 方山县| 宽城| 普兰店市| 罗定市| 团风县| 柏乡县| 永吉县| 义乌市| 镇沅| 西和县| 鹤庆县| 砀山县| 桐城市| 车险| 社旗县| 赞皇县| 汉川市| 托克逊县| 湾仔区| 陈巴尔虎旗| 门头沟区| 铜山县| 凌云县| 乌鲁木齐市| 甘孜县| 临漳县| 铜鼓县| 贞丰县| 科尔| 连南| 太白县| 高雄县| 台南县| 绥芬河市| 乐安县| 庆元县| 巨鹿县| 安泽县| 肥乡县|