JSP分页共设计了三个类:SplitPageVo 、PageVo、SqlVo
以上三个类请参考本博客的
JSP分页类一:SplitPageVo JSP分页类二:SqlVo JSP分页类三:PageVo
三篇文章
核心为一条SQL语句:
SELECT * FROM
(SELECT TOP 每页显示条数 * FROM
(SELECT TOP 每页显示数量x当前页 * FROM 表名) 表变量1
ORDER BY 排序字段 DESC) 表变量2
ORDER BY 排序字段
如:
SELECT * FROM
(SELECT TOP 10 * FROM
(SELECT TOP 3x10 * FROM shop) x
ORDER BY id DESC) y
ORDER BY id
使用简要说明:
//********************************************使~~~~用~~~~说~~~~明*****************************************
/**
...............................................................
在SERVELET里:
第一步:获取当前页码
if(request.getParameter("page")!=null){
page=Integer.parseInt(request.getParameter("page"));
}else{
page=1 ;
}
第二步:创建跳转对象
SplitPageVo vo=new SplitPageVo()
第三步:设置SQL语句SqlVo,URL,当前页面page
vo.setPageVo(page,10);
vo.setSqlVo("shop", "1=1", "id", "asc")
vo.setUrl("/servlet/Shop.do?action=0")
第四步:传入BIZ
TransOrderBiz biz=new TransOrderBiz()
vo=biz.getAllOrders(vo)
第五步:页面转向
request.setAttribute("OrderList",vo);
url="/tpl/tplproject/OrderList.jsp";
request.getRequestDispatcher(url).forward(request,response);
..................................................................
在BIZ里:
public class TransOrderBiz {
public SplitPageVo getAllOrders(SplitPageVo vo){
DBConnection dbc = new DBConnection();
if(dbc.getConnect()){
Connection conn = dbc.getConn();
try{
BU_TRANS_ORDERDAO dao=new BU_TRANS_ORDERDAO();
vo=dao.findByAll(conn);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}else{
System.out.println("数据库连接失败!");
}
return vo;
}
}
..................................................................
在DAO里:
public SplitPageVo findByAll(Connection conn ,SplitPageVo vo){
Vector v=new Vector();
StringBuffer sqlStr = null;
PreparedStatement ps=null;
Connection _conn=null;
ResultSet rs=null;
try{
_conn=conn;
$$$$$$$$$$$$$$$$$$$$$$$$$~~核~~心~~部~~分~~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
vo.getCount(_conn)//获取条数
vo.setPageVo(vo.getPageVo().getNowPage(),vo.getPageVo().getCount(),vo.getPageVo().getPreList())//设置PageVo
int top1 = vo.getTop1();
int top2 = vo.getTop2();
String strSql=vo.getSqlVo().toAllSql(top1,top2)//取出SQL语句
$$$$$$$$$$$$$$$$$$$$$$$$$$~~核~~心~~部~~分~~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ps=_conn.prepareStatement(strSql);
rs=ps.executeQuery();
while(rs.next()){
BU_TRANS_ORDERVO vo=new BU_TRANS_ORDERVO();
vo.setTO_ID(rs.getLong("TO_ID"));
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
vo.setTO_PRICE(rs.getDouble("TO_PRICE"));
v.addElement(vo);
}
vo.setData(v)//放入数据
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
if (ps!=null){
ps.close();
ps=null;
}
}catch(Exception e){
e.printStackTrace();
}
}
return vo;//返回
}
................................................................................
在JSP里:
SplitPageVo splitPageVo;
splitPageVo=(SplitPageVo)request.getAttribute("OrderList");
List l=splitPageVo.getData();
if(l!=null && l.size()>0 ){
for(int i=0;i<l.size() && i<l.size() ;i++){
ComplOrderVo vo=(ComplOrderVo)l.get(i);
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
}
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
<td >
<%=splitPageVo.splitPage(splitPageVo)%> //分页部分
</td>
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
................................................................................
*/
posted on 2008-06-18 15:48
jadmin 阅读(55)
评论(0) 编辑 收藏