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"是一个专为高性能表格展示设计的组件,主要应用于J2EE环境中,它提供了丰富的功能,如分页、分组以及排序等,旨在优化数据处理和用户体验。在这个项目中,我们可以看到一系列的JSP文件,这些文件是Web...
ValueList可以与Spring框架集成,以便于访问不同的数据源。Spring提供了一个统一的接口来访问不同的数据源,使得开发者可以快速构建数据驱动的应用程序。 六、使用Service ValueListHandler是一个服务,可以帮助...
1. **键(Key)和值(Value)**:`ValueList`的主要特点在于它可以存储键值对,其中键是唯一的标识符,而值则与键关联。键通常是字符串,而值可以是任何基本数据类型,如字符串、整数、浮点数等。 2. **添加和删除项...
Java 分页插件Valuelist是一款用于Java Web开发中的实用工具,主要目的是为了在处理大量数据时提高性能和用户体验,通过高效地分页显示数据,避免一次性加载所有数据导致内存压力过大。Valuelist源码的分析对于理解...
ValueListHandler 是一个接口,你需要实现它才能使用。在Web环境中,通常通过 Spring 的依赖注入来获取其实例。 3. **调用服务** 在调用服务前,需要创建一个 ValueListInfo 对象,它包含构建查询所需的参数,如...
本实例使用SSH框架整合开发,sqlserver2000数据库,valueList 插件,目的是练习分页插件的使用。由于jar包文件太多,故把jar包删去了,使用者只要加上SSH的jar文件,导入eclipse就可以运行
ValueListAdapter需要实现`ValueListAdapter`接口,这个接口定义了如何与数据库交互以及如何将查询结果转化为ValueList的方法。适配器的名字(如"nbateams")需要在Spring配置文件中声明,并且与数据库查询关联。 ...
valuelist;valuelist;valuelist;valuelist; 不错的表格控制技术
- **易用性**: 提供简洁的API接口,使得开发者可以快速地在项目中实现分页功能。 - **兼容性**: 兼容多种数据库,包括MySQL、Oracle、SQL Server等,同时支持JDBC和ORM框架如Hibernate、MyBatis。 - **应用示例**...
标题“仿valuelist式动态sql拼装”指的是在编程中实现类似MyBatis的`<foreach>`标签功能,用于动态地拼接SQL语句,尤其是处理列表参数时的插入、更新或查询操作。这种技术常见于Java后端开发,尤其是在使用ORM(对象...
在`web.xml`中,需要进行相应的调整以实现Valuelist 与Spring的集成。 **配置文件详解** 在`applicationContext.xml`中,可以看到配置了`ResourceBundleMessageSource`来处理国际化,`JndiObjectFactoryBean`用于...
功能强大的JSP分页组件 valuelist0.1.8 封装的很好
在IT行业中,数据库操作是核心任务之一,而SQL(Structured Query Language)是与数据库交互的主要语言。本话题聚焦于“分离valuelist的SQL拼装”,这是一个常见的编程需求,尤其是在处理批量数据插入、更新或者查询...
在权限管理中,Hibernate可以用来实现用户角色与权限的关联,如通过查询获取用户所拥有的所有权限,进而决定其在系统中的操作范围。 Spring框架则扮演了整合其他组件的角色,提供了依赖注入(DI)和面向切面编程...
在使用Java Hibernate框架进行数据操作时,我们常常会遇到ValueList和HQL(Hibernate ...然后在ValueList的配置文件中,引用这个`IntegerSetter`类,为需要转换的整型参数(如`uId`和`oId`)指定这个设置器: ```xml ...
在CEF中,C++和JavaScript之间的交互是至关重要的,它允许应用程序的底层逻辑与用户界面的动态部分进行通信。本文将详细介绍CEF环境下C++与JS的三种交互方式。 1. **JavaScript调用C++** CEF提供了一个API,叫做`...
根据给定文件的信息,本文将围绕“用JDBC实现数据库的级联删除与更新”这一主题进行深入探讨,包括理解需求、设计思路、具体实现步骤以及相关代码示例。 ### 1. 需求理解 #### 1.1 业务场景 在本案例中,存在两个...
在Java编程环境中调用SPSS(Statistical Product and Service Solutions)是通过SPSSINC API for Java实现的。这个API允许开发者在Java应用中无缝集成SPSS的功能,执行统计分析、数据处理等任务。SPSSINC API for ...
这篇博客文章“Oracle中(column1,column2..)in(集合/子查询)的hibernate实现”可能详细解释了如何在Hibernate中构建这种复杂查询。 首先,`Restrictions`是Hibernate Criteria API中的一个类,它提供了一系列的方法...