一个高效简便的Struts分页办法[Java编程]
本文“一个高效简便的Struts分页办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在网上看了几个Structs分页,感受不是很完善,于是按照自己的经验,写了一个相对高效简便的分页办法.由于本人水平有限,假如大家有什么更好的设法,欢送不吝赐教.
1、开辟环境
我的开辟环境是:JBuilder x + Weblogic 8.1 + Oracle 9i + Windows 2003 ,假如朋友们的开辟环境不一样亦无妨.
2、开辟思绪
既然讲的是Struts,那自然离不了MVC,分页显示也是如此.
1、成立数据库和对应的表,本例的表是TCertificate.
2、成立得当的模子组件,对应你要查询数据库中的表.这部份由DAO数据拜候层来实现,假若有的朋友对DAO不熟习可以查询一下相关资料.本例由CertificateDAO.java来实现.
3 、成立分页所需求的模子组件,由javaBean来充当,并与CertificateDAO实现别离.网上介绍的很多办法,都存在着数据与分页组件藕合的现象,这也是本办法与别的分页办法的主要差别之处.
4、成立掌握器组件,这部份由Struts 中的Action来实现.主要负责将实例化CertificateDAO,只取要显示的数据记录,存入ArrayList对象然后返回,并放到request中.而分页部份则按照分页条件,单独举行构造,避免了与DAO混在一同的情形发生.网上别的介绍的一些分页办法中,基本上都是一次性读出全部查询的数据,然后再由分页相关组件举行构造.这样,假如数据量大的话,很简单形成瓶颈.在本例中由于不是一次性地读出查询的全部数据,而只是读出一个页面要显示的数据记录,这就节俭了很多不必要的数据传输,提高了效率.本例中为CertificateAction.java.
5、成立视图组件,这部份由jsp来充当,为了不呈现java 代码,我们利用Struts供应的标签库,主要负责从request中取出方才放入的对象,通太反复调用CertificateAction以及action参数,而实现分页显示.本例中为listcertificate.jsp.
6、成立并配置struts-config.xml.
3、实例代码
肯定好上面的开辟思绪后,代码的实现就有单可循了.
1、建数据库和呼应的表.
2、数据逻辑层的相关代码.
1)、通用的DAO类:CommonDAO.java
这是一个很多DAO都要担当到的通用DAO类,是我按照实践总结出来的,为了削减篇幅,这里只显示和本例相关的代码.
java代码:
代码:package com.xindeco.business ;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.sql.*;
import java.lang.IllegalAccessException;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
public class DAO
{
protected DataSource ds;
/**
* 阐明:获得当前查询的总记录数
*/
public int getRows ()
{
return this.count;
}
public void rsHandler (ResultSet rs, int offset, int limit)
{
try
{
count = 0;
rs.absolute ( -1) ;
count = rs.getRow () ;
if (offset <= 0)
{
rs.beforeFirst () ;
}
else
{
rs.absolute (offset) ;
}
}
catch (Exception e)
{
e.printStackTrace () ;
}
}
public DAO(DataSource ds) {
this.ds = ds;
}
public void setDataSource(DataSource ds) {
this.ds = ds;
}
protected void close(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
rs = null;
}
}
protected void close(PreparedStatement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
}
pstmt = null;
}
}
protected void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
protected void rollback(Connection conn) {
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
这个类主如果通过子类传进来的先进后果集,获得查询的记录总数,并对数据库衔接举行简单的管理.
以上是“一个高效简便的Struts分页办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |