時(shí)光如水

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

          ValueList原理說(shuō)明

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

          ??????????????????????????? ValueList中四個(gè)主要的接口與實(shí)現(xiàn)類(lèi)

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

          第一步:從請(qǐng)求中構(gòu)造ValueListInfo對(duì)象,由幫助類(lèi)ValueListRequestUtil實(shí)現(xiàn)
          ?從請(qǐng)求中取得URL的參數(shù)和系統(tǒng)默認(rèn)值來(lái)構(gòu)造ValueListInfo對(duì)象
          ?
          第二步:得到Adapter的實(shí)現(xiàn)類(lèi)
          ?調(diào)用getBean方法,從配置文件中取得ValueListHandler實(shí)現(xiàn)類(lèi),調(diào)用getValueList方法,得到實(shí)體key對(duì)應(yīng)的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對(duì)象,使用DefaultListBackedValueList實(shí)現(xiàn)類(lèi)
          ?用適配器取得結(jié)果集(如HibernateAdapter),封裝ValueList對(duì)象
          ?ValueList中包含兩個(gè)對(duì)象,1)域?qū)ο蟮慕Y(jié)果集,2)ValueListInfo對(duì)象(分頁(yè)的相關(guān)息)
          ?
          第四步:把ValueList對(duì)象放到WEB的作用域中

          HQL說(shuō)明:主要通過(guò)迭代動(dòng)態(tài)生成HQL語(yǔ)句
          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)行由空白代替
          其它以此類(lèi)推
          注意:傳給HQL的每個(gè)變量都要單獨(dú)占一行,就算是類(lèi)似between and 的語(yǔ)句也要分兩行寫(xiě)


          評(píng)論

          # re: ValueList原理說(shuō)明  回復(fù)  更多評(píng)論   

          2006-08-24 08:54 by kite
          寫(xiě)的不錯(cuò),能不能詳細(xì)點(diǎn)!~我是新手,看的不大懂!

          # re: ValueList原理說(shuō)明  回復(fù)  更多評(píng)論   

          2006-12-30 11:19 by qiqijava[匿名]
          老兄,我覺(jué)得挺細(xì)了,再細(xì)就只能說(shuō)廢話(huà)了,呵呵@kite

          # re: ValueList原理說(shuō)明[未登錄](méi)  回復(fù)  更多評(píng)論   

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

          # re: ValueList原理說(shuō)明[未登錄](méi)  回復(fù)  更多評(píng)論   

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

          # re: ValueList原理說(shuō)明  回復(fù)  更多評(píng)論   

          2008-10-07 11:51 by 學(xué)習(xí)
          哥們啊,可不可以寫(xiě)個(gè)實(shí)例出來(lái)啊,麻煩了

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 遂平县| 迁西县| 湘潭县| 沾益县| 奈曼旗| 阿城市| 西安市| 光山县| 钟祥市| 阿鲁科尔沁旗| 江安县| 靖宇县| 辉县市| 威宁| 海阳市| 麦盖提县| 曲沃县| 会昌县| 若尔盖县| 丹东市| 南安市| 辽宁省| 时尚| 玉屏| 冀州市| 湘西| 昌吉市| 融水| 遂平县| 上虞市| 府谷县| 桃江县| 芜湖县| 合阳县| 特克斯县| 黄平县| 容城县| 广饶县| 西藏| 抚顺县| 汨罗市|