关于分页显示的代码的说明

源代码如下

<%
 int intPageSize; //一页显示的记录数
 int intRowCount; //记录总数
 int intPageCount; //总页数
 int intPage; //待显示页码
 java.lang.String strPage;
 int i;
 //设置一页显示的记录数

/**要注意的是,在这里设置了每一页所含的记录数*/
 intPageSize = 10;
 //取得待显示页码

/**在这里从request里面得到了起始页的页码,如果不在范围内 就把他切入到范围之内*/
 strPage = request.getParameter("page");
 if(strPage==null||"".equals(strPage)){//表明在QueryString中没有page这一个参数,此时显示第一页数据
   intPage = 1;
  }
 else{//将字符串转换成整型
  intPage = java.lang.Integer.parseInt(strPage);
  if(intPage<1) intPage = 1;
 }


 String url = "jdbc:odbc:test";
 Connection con;
 Statement stmt;
 String query = "select * from Product where product_name like '%"+product_name +"%' and producer like '%"+producer +"%' and deleted=0;";

 try {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 }
 catch(java.lang.ClassNotFoundException e) {
  System.err.print("ClassNotFoundException: ");
  //加载jdbc-odbc桥错误
  System.err.println(e.getMessage());
 //其他错误
 }
 try{
  con = DriverManager.getConnection(url, "admin", "");//数据库连接
  //out.println("1---------------") ;
/**在这里不是一般的createStatement,而是建立一个可以令其对应的数据集可以回滚的一个statement*/  

stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
  ResultSet rs = stmt.executeQuery(query);
  
  //获取记录总数
  rs.last();//??光标在最后一行
  intRowCount = rs.getRow();//获得当前行号
  System.out.println("查询结果集:"+intRowCount);
  //记算总页数
  intPageCount = (intRowCount+intPageSize-1) / intPageSize;
  //调整待显示的页码
  if(intPage>intPageCount){
   intPage = intPageCount;
  }
%>
<table>
<form method="POST" action="search.jsp" name="form1">
    第<%=intPage%>页  共<%=intPageCount%>页

 <%if(intPage>1){%><a href="search.jsp?page=<%=intPage-1%>">

     上一页</a><%}%>  
       <%if(intPage<intPageCount){%><a href="search.jsp?page=<%=intPage+1%>">下一页

     </a><%}%>
     转到第:<input type="text" name="page" size="8"> 页
     <span><input class=buttonface type="submit" value="GO" name="cndok"></span></td>
     </form>
</table>
<table border="1px">
<tr>
 <!--<td>序号</td>-->
 <td bgcolor="#1681c8" style="color:white">资产名称</td>
 <td bgcolor="#1681c8" style="color:white">资产生产单位</td>
 <td bgcolor="#1681c8" style="color:white">修改资产</td>
 <td bgcolor="#1681c8" style="color:white">删除资产</td>

<!--
 <td>资产规格型号</td>
 <td>资产数量</td>
 <td>资产价格</td>
 <td>资产购买日期</td>
-->

</tr>
<%
 if(intPageCount>0){
    //将记录指针定位到待显示页的第一条记录上
    rs.absolute((intPage-1) * intPageSize + 1);
    //显示数据
    i = 0;
    boolean found=rs.isAfterLast();
 for(i=0;i<intPageSize && !found;i++){

/**判断当前记录时候在目标要求的范围之内*/
  String id = rs.getString(1);
  String name = rs.getString(2);
  String producer2 = rs.getString(3);
  String type = rs.getString(4);
  String count = rs.getString(5);
  String price = rs.getString(6);
  String date = rs.getString(7);
  rs.next();
        found=rs.isAfterLast();
%>

/**在这里可以根据i的不同,来动态的生成隔行不同显示颜色的效果*/

.......................

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值