我看了网上好多分页想法,不过感觉有点复杂,下面的是我的想法,还在测试中
搞了好多了 我就怕 我的想法都是错得//每页显示5个 输入页面查询
public List ListUsers(int pageNo) {
// TODO Auto-generated method stub
Session session=this.getSession();
Query query=session.createQuery("from Users u order by u.usId asc");
int pageSize=5;
int firstResultIndex=pageSize*(pageNo-1);
query.setFirstResult(firstResultIndex);
query.setMaxResults(pageSize);
return query.list();
}
//总页面数
public int getCount() {
// TODO Auto-generated method stub
List list=this.getHibernateTemplate().find("select count(*) from Users");
int count=((Integer)list.iterator().next()).intValue();
return count;
}网页的话采用<c:foreach >循环输出
首页 我是直接放了一个参数1进去然后就是 用按钮 上一页 下一页 首页 末页 跳至**页 每个按钮都调用public List ListUsers(int pageNo)
在这些按钮中设置动态参数。我网页做的不好 就想偷懒用别人的网页结果 无法用doom取出网页参数值,更加设置不了参数传入 以致按钮总是无法调用函数将参数传至windows.localtion。
但直接放置静态参数 按钮是可以执行的
改网页去,坐等回复。谁有比较简便的SSH分页 也可以给我指导下 最好是源码
搞了好多了 我就怕 我的想法都是错得//每页显示5个 输入页面查询
public List ListUsers(int pageNo) {
// TODO Auto-generated method stub
Session session=this.getSession();
Query query=session.createQuery("from Users u order by u.usId asc");
int pageSize=5;
int firstResultIndex=pageSize*(pageNo-1);
query.setFirstResult(firstResultIndex);
query.setMaxResults(pageSize);
return query.list();
}
//总页面数
public int getCount() {
// TODO Auto-generated method stub
List list=this.getHibernateTemplate().find("select count(*) from Users");
int count=((Integer)list.iterator().next()).intValue();
return count;
}网页的话采用<c:foreach >循环输出
首页 我是直接放了一个参数1进去然后就是 用按钮 上一页 下一页 首页 末页 跳至**页 每个按钮都调用public List ListUsers(int pageNo)
在这些按钮中设置动态参数。我网页做的不好 就想偷懒用别人的网页结果 无法用doom取出网页参数值,更加设置不了参数传入 以致按钮总是无法调用函数将参数传至windows.localtion。
但直接放置静态参数 按钮是可以执行的
改网页去,坐等回复。谁有比较简便的SSH分页 也可以给我指导下 最好是源码
可以这样在网页中输出这个值
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;/**
* @des 分页公用类
* @author tao
* @date 2011.05.30
*/
public class PageBean extends HibernateDaoSupport {
private int curPage = 1; // 当前是第几页
private int maxPage; // 一共有多少页
private int maxRowCount; // 一共有多少行
public int rowsPerPage = 5; // 每页多少行
private String hql; // hql语句
public PageBean() {
} /**
* @des 分页
*/
public List findByPage(String hql) {
List list = null;
int First = (this.getCurPage() - 1) * this.rowsPerPage;
list = getSession().createQuery(hql).setFirstResult(First)
.setMaxResults(rowsPerPage).list();
return list;
} /**
* @des 获取总页数
* @throws Exception
*/
@SuppressWarnings("unchecked")
public int getPageBean(String hql) {
List list = getSession().createQuery(hql).list();
this.setMaxRowCount(list.size());
if (this.maxRowCount == 0) {
this.maxPage = 1;
} else {
if (this.maxRowCount % this.rowsPerPage == 0) { // 根据总行数计算总页数
this.maxPage = this.maxRowCount / this.rowsPerPage;
} else {
this.maxPage = this.maxRowCount / this.rowsPerPage + 1;
}
}
return this.getMaxPage();
} /******************************************************** get/set ***********************************/ public String getHql() {
return hql;
} public void setHql(String hql) {
this.hql = hql;
} public int getCurPage() {
return curPage;
} public void setCurPage(int curPage) {
this.curPage = curPage;
} public int getMaxPage() {
return maxPage;
} public void setMaxPage(int maxPage) {
this.maxPage = maxPage;
} public int getMaxRowCount() {
return maxRowCount;
} public void setMaxRowCount(int maxRowCount) {
this.maxRowCount = maxRowCount;
} public int getRowsPerPage() {
return rowsPerPage;
} public void setRowsPerPage(int rowsPerPage) {
this.rowsPerPage = rowsPerPage;
}
}
以前自己学习的时候写得一个分页类,和你的挺像的,需要完善的地方很多,现在进公司发现以前自己写得分页和项目经理写得比起来差好多,呵呵,hql语句就是传你要根据哪个表分页“from bean名字 where....”
页面要给action传个当前页就成了
var obj=document.getElementById("pageNo").value;
alert(obj);
window.location="users.do?op=ListUsers&pageNo="+obj;
}
可以从页面上 输出查询的页码
在把count 取出来计算末页 下一页 上一页 分页就完成了。。基础没学好 我就是困在这个
var obj=document.getElementById("pageNo").value;
alert(obj);
window.location="users.do?op=ListUsers&pageNo="+obj;
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet res=null;
public int getCount() {//获取总页数
int count=0;
String sql="select count(*) from news";
try {
getConn();
pstmt=conn.prepareStatement(sql);
res=pstmt.executeQuery();
if(res.next()){
count=res.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, res);
}
return count;
} public int getTotalPages(int count, int pageSize) {
int totalpages=0;
totalpages=(count%pageSize==0)?(count/pageSize):(count/pageSize+1);
return totalpages;
} public List<News> display(String sql) {
List<News> list=new ArrayList<News>();
News news=null;
try {
getConn();
pstmt=conn.prepareStatement(sql);
res=pstmt.executeQuery();
while(res.next()){
news=new News();
news.setNid(res.getInt("nid"));
news.setNtid(res.getString("ntid"));
news.setNtitle(res.getString("ntitle"));
news.setNauthor(res.getString("nauthor"));
news.setNcreatedate(res.getString("ncreatedate"));
news.setNpicpath(res.getString("npicpath"));
news.setNcontent(res.getString("ncontent"));
news.setNmodifydate(res.getString("nmodifydate"));
news.setNsummary(res.getString("nsummary"));
list.add(news);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, res);
}
return list;
}
<%
NewsDao newsDao=new NewsDaoImpl();
int pageSize=3;
int totalpages=newsDao.getTotalPages(newsDao.getCount(),pageSize); //调用方法,传入总页数和一共显示的几条信息
String currentPage=request.getParameter("pageIndex");
if(currentPage==null){
currentPage="1";
}
int pageIndex=Integer.parseInt(currentPage);
if(pageIndex<1){
pageIndex=1;
}else if(pageIndex>totalpages){
pageIndex=totalpages;
}
String sql="select * from (select rownum as r,t.* from (select news.* from news order by nid ) t where rownum<="+pageSize*pageIndex+")where r>"+pageSize*(pageIndex-1);
List list=newsDao.display(sql);
%>第二分页方法:------------------------------------------------------->>>sql server
package com.book.operator;import java.sql.*;
import java.util.*;import com.book.dao.*;
import com.book.entity.Book;public class Operator {
Connection conn;
PreparedStatement pstmt;
ResultSet rsSet;
private int pageSize = 5;
private int rowCount = 0;
private int pageCount = 0; public int getAllPages(int pageSize) {
try {
String sql = "use ebook select count(*) from bookInfo";
conn = BaseDao.getConn();
pstmt = conn.prepareStatement(sql);
rsSet = pstmt.executeQuery();
if (rsSet.next()) {
rowCount = rsSet.getInt(1);
}
if (rowCount % pageSize == 0) {
pageCount = rowCount / pageSize;
} else {
pageCount = rowCount / pageSize + 1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
BaseDao.closeAll(conn, pstmt, rsSet);
}
return pageSize;
}
public List<Book> getBookList(int pageNow, int pageSize) {
List<Book> list = new ArrayList<Book>();
try {
conn = BaseDao.getConn();
String sql = " select top " + pageSize + " * from bookInfo where bookId not in (select top " + pageSize * (pageNow-1) + " bookId from bookInfo)";
pstmt = conn.prepareStatement(sql);
rsSet = pstmt.executeQuery();
while (rsSet.next()) {
Book book = new Book();
book.setBookName(rsSet.getString("bookName"));
book.setBookType(rsSet.getString("bookType"));
book.setBookStatus(rsSet.getString("bookStatus"));
list.add(book);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
BaseDao.closeAll(conn, pstmt, rsSet);
}
return list;
} <%
int pageNow =1;
int upPage=pageNow;
int downPage=pageNow;
String CurrentPages=request.getParameter("pageIndex");
if(pages!=null)
{ pageNow=Integer.parseInt(CurrentPages); }
Operator oper=new Operator();
List list=oper.getBookList(pageNow,5);
if(oper.getBookList(pageNow+1,5).size()>0)
{
downPage=pageNow+1; }
else{
downPage = pageNow; }
if(pageNow>1)
{ upPage=pageNow-1;}
for(int i=0;i<list.size();i++)
{
Book book=(Book)list.get(i);
%>
---------------------->>>>>应用
(oracle数据库分页)
String sql="select * from (select rownum as r,t.* from (select news.* from news order by ncreatedate desc) t ) where rownum<=10 ")where r> 5" >>>>>String sql="select * from (select rownum as r,t.* from (select news.* from news order by nid ) t where rownum<="+pageSize*pageIndex+")where r>"+pageSize*(pageIndex-1);
------------------------------------
(Sql server数据库分页)
String sql = "use ebook select top " + pageSize + " * from bookInfo where bookId not in (select top " + pageSize * (pageNow-1) + " bookId from bookInfo)";
String sql="select top "+ pageSize +" * from user where id not in (select top " +pageSize * (pageNew-1 )+ " id from user ) ";
import java.util.ArrayList;
import java.util.List;/**
*
* 翻页
* @author lgyne
*
*/
public class TurnPage
{
@SuppressWarnings("rawtypes")
private List totalRecord;//总记录数据
private int pagingNum = 10;//分页数(每一页多少条记录,默认是10)
private int page = 1;//当前页(默认为第一页)
/**
* 总记录条数,其他参数默认
* @param totalRecord -- 总记录条数
*/
@SuppressWarnings("rawtypes")
public TurnPage(List totalRecord)
{
this.totalRecord = totalRecord;
} public List getTotalRecord()
{
return totalRecord;
} public void setTotalRecord(List totalRecord)
{
this.totalRecord = totalRecord;
} public int getPagingNum()
{
return pagingNum;
} public void setPagingNum(int pagingNum)
{
this.pagingNum = pagingNum;
} public void setPage(int page)
{
this.page = page;
} /**
* 总记录条数,分页数自定
* @param totalRecord -- 总页数
* @param pagingNum -- 分页数
*/
@SuppressWarnings("rawtypes")
public TurnPage(List totalRecord, int pagingNum)
{
this(totalRecord);
this.pagingNum = pagingNum;
} /**
* 返回总共有几页
* @return
*/
public int getTotalPage()
{
int totalPage = 0;
int temp = this.totalRecord.size()%this.pagingNum;
if(temp == 0)
{
totalPage = this.totalRecord.size()/this.pagingNum;
}else
{
totalPage = this.totalRecord.size()/this.pagingNum + 1;
}
return totalPage;
}
/**
* 返回当前页数
* @return
*/
public int getPage()
{
return this.page;
}
/**
* 上一页
* @return
*/
public int Back()
{
if(this.page == 1)
{
return this.page;
}else
{
return this.page = this.page - 1;
}
}
/**
* 下一页
* @return
*/
public int Next()
{
if(this.page == this.getTotalPage())
{
return this.page;
}else
{
return this.page = this.page + 1;
}
}
/**
* 跳转
* @param page -- 跳转的页
* @return
*/
public int turnPage(int page)
{
if(page <= 1)
{
return this.page = 1;
}else if(page >= this.getTotalPage())
{
return this.page = this.getTotalPage();
}else
{
return this.page = page;
}
}
/**
* 返回当前页数据
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public List getPageList(List list)
{
int pageStart = (this.page - 1) * this.pagingNum;
ArrayList tempList = new ArrayList() ;
for(int i = pageStart; i < pageStart + this.pagingNum; i++)
{
tempList.add(list.get(i));
if(i + 1 == this.totalRecord.size())
{
break;
}
}
return tempList;
}自己做项目写的分页,传一个LIST 进去然后分页信息就出来了