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

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

          因此,我首先修改代碼來計(jì)算count。

          1、我原計(jì)劃繼承SelectCommand來實(shí)現(xiàn)一個(gè)SelectCountCommand的類,結(jié)果發(fā)現(xiàn)hack代碼太多,不如直接在SelectCommand上增加一個(gè)方法,因?yàn)閏ount對(duì)比一般的select無非是select進(jìn)行改變和去掉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;
            }

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

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

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

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 扬州市| 讷河市| 泗阳县| 明溪县| 朝阳区| 高要市| 平遥县| 凤城市| 胶南市| 水城县| 桂平市| 长阳| 台东市| 陕西省| 临高县| 宿迁市| 手机| 凭祥市| 武夷山市| 安达市| 西乌| 岑巩县| 通州市| 斗六市| 微山县| 康马县| 霍林郭勒市| 康保县| 中江县| 苗栗县| 平湖市| 钟山县| 丹阳市| 桐柏县| 呈贡县| 乡城县| 汉沽区| 沙田区| 安达市| 扎赉特旗| 沅江市|