background image

    

<

property 

name

=

"

 

HibernateBaseDao"

><

ref 

bean

=

HibernateBaseDao"

/></

property

>

    

<

property 

name

=

"sysUtilManager"

><

ref 

bean

=

"sysUtilManager"

/></

property

>

        

</

bean

>

        

</

property

>

    

</

bean

>

2.3. 展现层 Spring MVC

2.3.1.

列表查询

1, 根 据 页 面 显 示 需 要 , 按 照 JavaBean 规 范 书 写 业 务 领 域 模 型 类 , 命 名 为 [ 模 块 名 ]

+”domain.Java”,使之位于包 com.iswind.domain.[模块名]下。

2, 根 据 业 务 需 要 , 按 照 JavaBean 规 范 书 写 查 询 参 数 模 型 类 , 命 名 为 [ 模 块 名 ]

+”QueryModel.java”,使之位于和业务处理 service 类相同的包内。

3, 按照 Hibernate 标准格式书写 SQL 语句,在这里由于我们要求列表要可以按照表头字段

进行排序,因此

SQL 语句的格式还需要其他一些标准。要求如下:

a. 查询 SQL 由两个语句构成,假设其中一个名为 sqlName,如”findSysUserList”,则

我 们 还 需 要 定 义 一 个

SQL 语 句 , 名 为 sqlName+”Count” ,

”findSysUserListCount”。sqlName 负责查询出所有符合条件的记录,而后者负责

查询出符合条件记录的总个数。

b. 查询数据记录的 SQL 语句后面加上这么一段话,从而可以按照表头字段进行排序

<

isNotNull 

property

=

"orderByString"

>

   

order by $orderByString$

   

</

isNotNull

>

c. 查询数据记录的 SQL 语句返回值类型定义为上述写好的业务领域 domain 类
d. 查询记录个数的 SQL 语句的返回值类型定义”java.lang.Integer”
e. 查询数据记录的 SQL 语句和查询记录个数的 SQL 语句的参数类型定义为上述写好

的查询参数

model 类。

4, 在上述写好的业务处理 Service 接口和实现类中分别增加一个查询方法,返回值为

net.mlw.vlh.ValueList 类型,参数为查询参数 model 对象和 net.mlw.vlh.ValueListInfo 对象。
在实现类中调用

HibernateBaseDao 的 findPagingQueryResult 的方法完成查询。

5, 书 写 查 询 适 配 器 类 , 参 考 命 名 是 [ 模 块 名 ]+”ListSearchAdapter.java” , 使 之 位 于

com.iswind.webapp.action.[模块名]的包中。它继承自 BaseValueListAdapter.java 抽象类,
我们需要实现其中的两个抽象方法,
a. 其中一个抽象方法为
protected void setOrderFieldsMap(DefaultQueryTranslator translator) {}
本方法负责将页面排序字段转换成数据库排序字段。主要是调用

DefaultQueryTranslator

addTransMap 方法来完成映射。

b. 另一个抽象方法是
public ValueList getResultList(String orderByString, ValueListInfo info) {}