<
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) {}