源代码如下
<%
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的不同,来动态的生成隔行不同显示颜色的效果*/
.......................