`

ValueList中主要的接口与实现类

阅读更多

http://valuelist.sourceforge.net/

1. ValueListInfo 封装Map对象,含有排序、分页、聚焦和提交表单等相关信息
2. ValueListHandler接口,实现类:DefaultValueListHandlerImpl 它是ValueList中的核心类,其定义在配置文件中,调用getValueList方法返回ValueList对象
3. ValueList接口,实现类:DefaultListBackedValueList 它包含两个对象,1)域对象的结果集,2)ValueListInfo对象
4. ValueListAdapter接口,有以下几种实现
 ○ DefaultWrapperAdapter         jdbc操作的适配器
 ○ EventLogAdapter               日志操作的适配器
 ○ FileSystemAdapter             文件系统操作的适配器
 ○ HibernateAdapter              hibernate操作的适配器
 ○ MappingSqlQueryAdapter        iBATIS的sqlMap适配器
 
具体实现流程

第一步:从请求中构造ValueListInfo对象,由帮助类ValueListRequestUtil实现
 从请求中取得URL的参数和系统默认值来构造ValueListInfo对象
 
第二步:得到Adapter的实现类
 调用getBean方法,从配置文件中取得ValueListHandler实现类,调用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>
第三步:构造ValueList对象,使用DefaultListBackedValueList实现类
 用适配器取得结果集(如HibernateAdapter),封装ValueList对象
 ValueList中包含两个对象,1)域对象的结果集,2)ValueListInfo对象(分页的相关息)
 
第四步:把ValueList对象放到WEB的作用域中

HQL说明:主要通过迭代动态生成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 的语句也要分两行写

分享到:
评论

相关推荐

    valuelist

    "valuelist"是一个专为高性能表格展示设计的组件,主要应用于J2EE环境中,它提供了丰富的功能,如分页、分组以及排序等,旨在优化数据处理和用户体验。在这个项目中,我们可以看到一系列的JSP文件,这些文件是Web...

    兔八哥ValueList的文档0.3

    ValueList可以与Spring框架集成,以便于访问不同的数据源。Spring提供了一个统一的接口来访问不同的数据源,使得开发者可以快速构建数据驱动的应用程序。 六、使用Service ValueListHandler是一个服务,可以帮助...

    ValueList_delphiValueList_

    1. **键(Key)和值(Value)**:`ValueList`的主要特点在于它可以存储键值对,其中键是唯一的标识符,而值则与键关联。键通常是字符串,而值可以是任何基本数据类型,如字符串、整数、浮点数等。 2. **添加和删除项...

    java分页插件valuelist

    Java 分页插件Valuelist是一款用于Java Web开发中的实用工具,主要目的是为了在处理大量数据时提高性能和用户体验,通过高效地分页显示数据,避免一次性加载所有数据导致内存压力过大。Valuelist源码的分析对于理解...

    ValueList的文档

    ValueListHandler 是一个接口,你需要实现它才能使用。在Web环境中,通常通过 Spring 的依赖注入来获取其实例。 3. **调用服务** 在调用服务前,需要创建一个 ValueListInfo 对象,它包含构建查询所需的参数,如...

    valueList 分页插件的使用

    本实例使用SSH框架整合开发,sqlserver2000数据库,valueList 插件,目的是练习分页插件的使用。由于jar包文件太多,故把jar包删去了,使用者只要加上SSH的jar文件,导入eclipse就可以运行

    ValueList技术分享 ValueList技术应用.doc

    ValueListAdapter需要实现`ValueListAdapter`接口,这个接口定义了如何与数据库交互以及如何将查询结果转化为ValueList的方法。适配器的名字(如"nbateams")需要在Spring配置文件中声明,并且与数据库查询关联。 ...

    valuelist war

    valuelist;valuelist;valuelist;valuelist; 不错的表格控制技术

    包括应用示例的功能强大的分页组件valuelist0.1.8

    - **易用性**: 提供简洁的API接口,使得开发者可以快速地在项目中实现分页功能。 - **兼容性**: 兼容多种数据库,包括MySQL、Oracle、SQL Server等,同时支持JDBC和ORM框架如Hibernate、MyBatis。 - **应用示例**...

    仿valuelist式动态sql拼装

    标题“仿valuelist式动态sql拼装”指的是在编程中实现类似MyBatis的`&lt;foreach&gt;`标签功能,用于动态地拼接SQL语句,尤其是处理列表参数时的插入、更新或查询操作。这种技术常见于Java后端开发,尤其是在使用ORM(对象...

    功能强大的JSP分页组件 valuelist0.1.8

    功能强大的JSP分页组件 valuelist0.1.8 封装的很好

    分离valuelist的sql拼装

    在IT行业中,数据库操作是核心任务之一,而SQL(Structured Query Language)是与数据库交互的主要语言。本话题聚焦于“分离valuelist的SQL拼装”,这是一个常见的编程需求,尤其是在处理批量数据插入、更新或者查询...

    权限控制(struts2+hibernate+spring+struts-menu+valuelist)

    在权限管理中,Hibernate可以用来实现用户角色与权限的关联,如通过查询获取用户所拥有的所有权限,进而决定其在系统中的操作范围。 Spring框架则扮演了整合其他组件的角色,提供了依赖注入(DI)和面向切面编程...

    如何通过配置自动实现ValueList中hql语句的整型参数转换

    在使用Java Hibernate框架进行数据操作时,我们常常会遇到ValueList和HQL(Hibernate ...然后在ValueList的配置文件中,引用这个`IntegerSetter`类,为需要转换的整型参数(如`uId`和`oId`)指定这个设置器: ```xml ...

    CEF 下C++与JS交互

    在CEF中,C++和JavaScript之间的交互是至关重要的,它允许应用程序的底层逻辑与用户界面的动态部分进行通信。本文将详细介绍CEF环境下C++与JS的三种交互方式。 1. **JavaScript调用C++** CEF提供了一个API,叫做`...

    用JDBC实现数据库的级联删除与更新

    根据给定文件的信息,本文将围绕“用JDBC实现数据库的级联删除与更新”这一主题进行深入探讨,包括理解需求、设计思路、具体实现步骤以及相关代码示例。 ### 1. 需求理解 #### 1.1 业务场景 在本案例中,存在两个...

    Oracle中(column1,column2..)in(集合/子查询)的hibernate实现

    这篇博客文章“Oracle中(column1,column2..)in(集合/子查询)的hibernate实现”可能详细解释了如何在Hibernate中构建这种复杂查询。 首先,`Restrictions`是Hibernate Criteria API中的一个类,它提供了一系列的方法...

    Java调用SPSS的实例.docx

    在Java编程环境中调用SPSS(Statistical Product and Service Solutions)是通过SPSSINC API for Java实现的。这个API允许开发者在Java应用中无缝集成SPSS的功能,执行统计分析、数据处理等任务。SPSSINC API for ...

Global site tag (gtag.js) - Google Analytics