java认证辅导:spring分页汇总Java认证考试

文章作者 100test 发表时间 2010:02:25 21:59:35
来源 100Test.Com百考试题网


  对于分页,主要思想无非两种,一是从数据库取出所有记录后进行分页,另一种思路是在取出数据的同时进行分页,然后在页面显示,昨晚查了不少资料,对目前流行的分页方式总结了下。

  本人目前有个项目要用到Spring的JdbcTemplate,顺带搜了点关于其分页的实现方法:

  用Spring的JdbcTemplate实现分页功能

  最近使用了spring中的JdbcTemplate实现数据库的查询和插入操作,发现spring的JdbcTemplate 不象HibernateTemplate那么好,已经实现了分页功能。所以要自己实现,使用 getJdbcTemplate().queryForList(string sql)得到的结果集是所有的。

  如果你的查询有10000条记录,或者更多,速度肯定慢了,当然你可以通过resultset中的游标控制查询的起始和结束。我这里用的是Oracle数据库,使用伪列ROWNUM来实现分页。我的分页代码如下:

  package com.deity.ranking.util.import java.util.List.

  import org.springframework.jdbc.core.JdbcTemplate.

  import org.springframework.jdbc.core.support.JdbcDaoSupport.

  /** * 分页函数 * * @author allenpan */public class Pagination extends JdbcDaoSupport{

  public static final int NUMBERS_PER_PAGE = 10.

  //一页显示的记录数

  private int numPerPage.

  //记录总数

  private int totalRows.

  //总页数

  private int totalPages.

  //当前页码

  private int currentPage.

  //起始行数

  private int startIndex.

  //结束行数

  private int lastIndex.

  //结果集存放List

  private List resultList.

  //JdbcTemplate jTemplate

  private JdbcTemplate jTemplate.

  /**

  * 每页显示10条记录的构造函数,使用该函数必须先给Pagination设置currentPage,jTemplate初值

  * @param sql oracle语句

  */

  public Pagination(String sql){

  if(jTemplate == null){

  throw new IllegalArgumentException("com.deity.ranking.util.Pagination.jTemplate is null,please initial it first. ").

  }else if(sql.equals("")){

  throw new IllegalArgumentException("com.deity.ranking.util.Pagination.sql is empty,please initial it first. ").

  }

  new Pagination(sql,currentPage,NUMBERS_PER_PAGE,jTemplate).

  }

  /**分页构造函数

  * @param sql 根据传入的sql语句得到一些基本分页信息

  * @param currentPage 当前页

  * @param numPerPage 每页记录数

  * @param jTemplate JdbcTemplate实例

  */

  public Pagination(String sql,int currentPage,int numPerPage,JdbcTemplate jTemplate){

  if(jTemplate == null){

  throw new IllegalArgumentException("com.deity.ranking.util.Pagination.jTemplate is null,please initial it first. ").

  }else if(sql == null || sql.equals("")){

  throw new IllegalArgumentException("com.deity.ranking.util.Pagination.sql is empty,please initial it first. ").

  }


相关文章


JavaScript实现水平选项卡效果Java认证考试
浅析Java内部类在GUI设计中的作用(1)Java认证考试
浅析Java内部类在GUI设计中的作用(2)Java认证考试
Java判断字符串是否为空方法Java认证考试
java认证辅导:spring分页汇总Java认证考试
使用java.util.concurrent实现的线程池、消息队列功能Java认证考试
关于JAVA的可移植性Java认证考试
Java中int和Integer的区别Java认证考试
JAVA的位移运算巧方法Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛