当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

一个高效简便的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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 一个高效简便的Struts分页办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .