時光如水

          我心跳動
          posts - 6, comments - 10, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          ValueList原理說明

          Posted on 2006-05-16 16:15 qiqijava 閱讀(2061) 評論(5)  編輯  收藏 所屬分類: Tag

          ??????????????????????????? ValueList中四個主要的接口與實現(xiàn)類

          1. ValueListInfo 封裝Map對象,含有排序、分頁、聚焦和提交表單等相關(guān)信息
          2. ValueListHandler接口,實現(xiàn)類:DefaultValueListHandlerImpl 它是ValueList中的核心類,其定義在配置文件中,調(diào)用getValueList方法返回ValueList對象
          3. ValueList接口,實現(xiàn)類:DefaultListBackedValueList 它包含兩個對象,1)域?qū)ο蟮慕Y(jié)果集,2)ValueListInfo對象
          4. ValueListAdapter接口,有以下幾種實現(xiàn)
          ?○ DefaultWrapperAdapter???????? jdbc操作的適配器
          ?○ EventLogAdapter?????????????? 日志操作的適配器
          ?○ FileSystemAdapter???????????? 文件系統(tǒng)操作的適配器
          ?○ HibernateAdapter????????????? hibernate操作的適配器
          ?○ MappingSqlQueryAdapter??????? iBATIS的sqlMap適配器
          ?
          具體實現(xiàn)流程

          第一步:從請求中構(gòu)造ValueListInfo對象,由幫助類ValueListRequestUtil實現(xiàn)
          ?從請求中取得URL的參數(shù)和系統(tǒng)默認值來構(gòu)造ValueListInfo對象
          ?
          第二步:得到Adapter的實現(xiàn)類
          ?調(diào)用getBean方法,從配置文件中取得ValueListHandler實現(xiàn)類,調(diào)用getValueList方法,得到實體key對應的Adapter,如:
          ?<bean class="net.mlw.vlh.adapter.hibernate3.HibernateAdapter">
          ??<property name="sessionFactory"><ref bean="mySessionFactory"/></property>
          ??<property name="defaultNumberPerPage"><value>10</value></property>
          ??<property name="defaultSortColumn"><value>messageIn.date</value></property>
          ??<property name="defaultSortDirection"><value>desc</value></property>
          ??<property name="hql">
          ??<value>
          ??from User AS vo
          ???/~certNumber: where vo.certNumber like {certNumber} ~/
          ???/~name: where vo.name like {name} ~/
          ???/~certHolder: where vo.certHolder like {certHolder} ~/
          ???/~groupName: where vo.group.name like {groupName} ~/
          ???/~sortColumn: ORDER BY vo.[sortColumn] [sortDirection]~/
          ??</value>
          ??</property>
          ??<property name="defaultFocusPropertyObjectAlias"><value>vo</value></property>
          ??<property name="maxRowsForFocus"><value>160000</value></property>??
          ??<property name="removeEmptyStrings"><value>true</value></property>
          ?</bean>
          第三步:構(gòu)造ValueList對象,使用DefaultListBackedValueList實現(xiàn)類
          ?用適配器取得結(jié)果集(如HibernateAdapter),封裝ValueList對象
          ?ValueList中包含兩個對象,1)域?qū)ο蟮慕Y(jié)果集,2)ValueListInfo對象(分頁的相關(guān)息)
          ?
          第四步:把ValueList對象放到WEB的作用域中

          HQL說明:主要通過迭代動態(tài)生成HQL語句
          from User AS vo
          ?/~certNumber: where vo.certNumber like {certNumber} ~/?????????? (1)
          ?/~name: where vo.name like {name} ~/???????????????????????????? (2)
          ?/~certHolder: where vo.certHolder like {certHolder} ~/?????????? (3)
          ?/~groupName: where vo.group.name like {groupName} ~/???????????? (4)
          ?/~sortColumn: ORDER BY vo.[sortColumn] [sortDirection]~/???????? (5)

          (1)如果ValueListInfo中包含certNumber變量,如certNumber=100,則vo.certNumber like=100,生成HQL=from User AS vo where vo.certNumber like=100;
          ??????? 如果ValueListInfo中不包含certNumber變量,生成HQL=from User AS vo?? (1)行由空白代替
          其它以此類推
          注意:傳給HQL的每個變量都要單獨占一行,就算是類似between and 的語句也要分兩行寫


          評論

          # re: ValueList原理說明  回復  更多評論   

          2006-08-24 08:54 by kite
          寫的不錯,能不能詳細點!~我是新手,看的不大懂!

          # re: ValueList原理說明  回復  更多評論   

          2006-12-30 11:19 by qiqijava[匿名]
          老兄,我覺得挺細了,再細就只能說廢話了,呵呵@kite

          # re: ValueList原理說明[未登錄]  回復  更多評論   

          2008-02-27 09:59 by TANG
          很好?。?
          3Q

          # re: ValueList原理說明[未登錄]  回復  更多評論   

          2008-06-22 17:35 by Joe
          哥們,請教一下怎么設(shè)置 ValueList的多個字段排序呢? 謝謝

          # re: ValueList原理說明  回復  更多評論   

          2008-10-07 11:51 by 學習
          哥們啊,可不可以寫個實例出來啊,麻煩了

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 中卫市| 陵川县| 孝义市| 冕宁县| 礼泉县| 奉化市| 阿克| 葫芦岛市| 肥乡县| 依安县| 尚志市| 寿光市| 江阴市| 垦利县| 穆棱市| 互助| 桃园县| 石阡县| 兰考县| 鄂托克旗| 米林县| 始兴县| 佳木斯市| 阿克苏市| 蓬安县| 太和县| 乃东县| 永安市| 旺苍县| 榆社县| 海口市| 广德县| 邓州市| 同心县| 神池县| 嵊州市| 清流县| 威海市| 华容县| 田林县| 临武县|