level 2
=========================================JSP==================<%@ page contentType="text/html; charset=GB2312" %><%@ pageimport="java.sql.*" %><%@ page language="java" %><%!String searchBookID = null ;String searchDate1 = null ;String searchDate2 = null ;String searchPrice1 = null ;String searchPrice2 = null ;int PageSize = 2; //设置每张网页显示两笔记录int ShowPage = 1; //设置欲显示的页数int RowCount = 0; //ResultSet的记录笔数int PageCount = 0; //ResultSet分页后的总页数Connection con = null;Statement stmt = null;ResultSet rs = null;%><%searchBookID = request.getParameter("textBookID");searchDate1 = request.getParameter("textDate1");searchDate2 = request.getParameter("textDate2");searchPrice1 = request.getParameter("textPrice1");searchPrice2 = request.getParameter("textPrice2");String sql = "select * from book" ;if ( !searchBookID.equals("") ){sql += " where BookID = '" + searchBookID +"'";}else{sql += " where BookID like '%' ";}if( !searchDate1.equals("") ){sql += " and PDate >=
#" + searchDate1 + "#
and PDate <=
#" + searchDate2 + "#
";}if( !searchPrice1.equals("") ){ sql += " and Price >= " + searchPrice1 + " and Price <= " + searchPrice2 ;}%><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//载入驱动程序类别con = DriverManager.getConnection("jdbc:odbc:BookDB");//建立数据库链接//建立Statement对象, 并设置记录指标类型为可前后移动stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);System.out.println( sql );rs = stmt.executeQuery( sql ); //建立ResultSet(结果集)对象,并执行SQL语句rs.last(); //将指标移至最后一笔记录RowCount = rs.getRow(); //取得ResultSet中记录的笔数//计算显示的页数PageCount = ((RowCount % PageSize) == 0 ? (RowCount/PageSize) : (RowCount/PageSize)+1);%>
高级搜索
高级搜索
<%String ToPage = request.getParameter("ToPage");if(ToPage != null) //判断是否可正确取得ToPage参数{ShowPage = Integer.parseInt(ToPage); //取得指定显示的分页页数if(ShowPage > PageCount) //下面的if语句将判断用户输入的页数是否正确{ShowPage = PageCount; //判断指定页数是否大于总页数, 是则设置显示最后一页}else if(ShowPage <= 0){ShowPage = 1; //若指定页数小于0, 则设置显示第一页的记录}}rs.absolute((ShowPage - 1) * PageSize + 1); //计算欲显示页的第一笔记录位置%>
当前在第
<%= ShowPage %>页, 共
<%= PageCount %>页
<%//利用For循环配合PageSize属性输出一页中的记录for(int i = 1; i <= PageSize; i++){%>
书籍编号
<%= rs.getString("BookID") %>
出版日期
<%= rs.getDate("PDate") %>
总页数
<%= rs.getString("Pages") %>
价 格
<%= rs.getInt("Price") %>
书籍名称
<%= rs.getString("Title") %>
作 者
<%= rs.getString("Author") %>
备 注
<%= rs.getString("BookMemo") %>
<%//下面的if判断语句用于防止输出最后一页记录时, //将记录指标移至最后一笔记录之后if(!rs.next()) //判断是否到达最后一笔记录break; //跳出for循环}%><%//判断目前所在分页是否为第一页,//不是则显示到第一页与上一页的超链接if(ShowPage != 1){//下面建立的各超链接将链接至自己, //并将欲显示的分页以ToPage参数传递给自己%><%}//判断目前所在分页是否为最后一页,//不是则显示到最后一页与下一页的超链接if(ShowPage != PageCount){//下面建立的各超链接将链接至自己, //并将欲显示的分页以ToPage参数传递自己%><%rs.close(); //关闭ResultSet对象stmt.close(); //关闭Statement对象con.close(); //关闭数据库链接对象}%>
>到第一页
>到上一页
>到下一页
>到最后一页
到
> 页
2007年07月05日 08点07分