📄
字号:
范例SQL_Pages.jsp源代码:
001 <%@ page errorPage="ErrPage.jsp"
002 import="Java.util.Date, Java.sql.*"
003 contentType="text/html;charset=gb2312"%>
004 <HTML>
005 <HEAD>
006 <style>
007 <!--
008 tr { font-size: 10pt }
009 body { font-size: 10pt }
010 a:link { color: blue; text-decoration: none }
011 a:visited { color: blue; text-decoration: none }
012 a:active { color: red; text-decoration: none }
013 a:hover { color: red; text-decoration: underline }
014 -->
015 </style>
016 <TITLE>数据库中记录分页显示实例</TITLE>
017 </HEAD>
018 <BODY bgcolor=LightBlue>
019 <%
020 try
021 {
022 //加载驱动程序
023 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
024 //建立与ACCESS数据库连接,数据源名称为student
025 //ACCESS数据库没有设定用户名和密码
026 Connection con=DriverManager.getConnection("jdbc:odbc:student");
027 //建立Statement对象
028 Statement statement=con.createStatement(
029 ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
030 //建立ResultSet对象
031 ResultSet rs=null;
032 int p,m,n;
033 int PageSize = 5; //设置每张网页显示五条记录
034 int ShowPage = 1; //设置欲显示的页数
035 int RowCount = 0; //ResultSet的记录笔数
036 int PageCount = 0; //ResultSet分页后的总页数
037 //建立Statement对象, 并设置记录指标类型为可前后移动
038 String sql=null;
039 String search_txt="";
040 String ToPage = request.getParameter("ToPage");
041 if (request.getParameter("search_txt") != null
&& !request.getParameter("search_txt").equals(""))
042 {
043 search_txt = new
String(request.getParameter("search_txt").trim().getBytes("8859_1"));
044 }
045 if (search_txt != null && !search_txt.equals("")) //
046 {
047 sql="select * from student where name like '%" + search_txt + "%'";
048 sql=sql + " or sex like '%" + search_txt + "%'";
049 sql=sql + " or class like '%" + search_txt + "%'";
050 sql=sql + " or chinese like '%" + search_txt + "%'";
051 sql=sql + " or maths like '%" + search_txt + "%'";
052 sql=sql + " or physics like '%" + search_txt + "%'";
053 sql=sql + " or chemistry like '%" + search_txt + "%'";
054 sql=sql + "order by id";
055 }
056 else
057 {
058 sql="select * from student order by id";
059 }
060 rs = statement.executeQuery(sql);
061 rs.last(); //将指标移至最后一笔记录
062 RowCount = rs.getRow(); //取得ResultSet中记录的笔数
063 PageCount = ((RowCount % PageSize) == 0 ?
064 (RowCount/PageSize) : (RowCount/PageSize)+1);
065 //计算显示的页数
066 //判断是否可正确取得ToPage参数,
067 //可取得则表示JSP网页应显示特定分页记录的语句
068 if(ToPage != null)
069 {
070 //取得指定显示的分页页数
071 ShowPage = Integer.parseInt(ToPage);
072 //下面的if语句将判断用户输入的页数是否正确
073 if(ShowPage > PageCount)
074 {
075 //判断指定页数是否大于总页数, 是则设置显示最后一页
076 ShowPage = PageCount;
077 }
078 else if(ShowPage <= 0)
079 {
080 //若指定页数小于0, 则设置显示第一页的记录
081 ShowPage = 1;
082 }
083 }
084 rs.absolute((ShowPage - 1) * PageSize + 1);
085 //计算欲显示页的第一笔记录位置
086 %>
087 <center>
088 <table border="0" width="800">
089 <tr>
090 <td>
091 <font size="6" face="隶书">学生成绩表</font>
092 </td>
093 </tr>
094 <tr>
095 <td width="600" height="10">
096 <%
097 if (search_txt != null && !search_txt.equals(""))
098 {
099 %>
100 以下是包含关键字<font color="#ff0000"><%=search_txt%></font>的所有信息
101 <%
102 }
103 else
104 {
105 %>
106 以下是所有的信息
107 <%
108 }
109 %>
110 共:
111 <font color="blue">
112 <%=RowCount%>
113 </font>
114 条 共
115 <font color="blue">
116 <%=PageCount%>
117 </font>
118 页 当前页为第
119 <font color="red">
120 <%=ShowPage%>
121 </font>
122 页
123 <%
124 if (PageCount>1)
125 {
126 if (ShowPage-3>0)
127 {
128 m=ShowPage-3;
129 }
130 else
131 {
132 m=1;
133 }
134 if (ShowPage+3<PageCount)
135 {
136 n=ShowPage+3;
137 }
138 else
139 {
140 n=PageCount;
141 }
142 %>
143 转到页码:[
144 <%
145 for( p=m;p<=n;p++)
146 {
147 if( ShowPage==p )
148 {
149 %>
150 <font color="red"><b><%=p%></b></font>
151 <%
152 }
153 else
154 {
155 %>
156 <a
157 <%
158 if (ShowPage==p)
159 {
160 %>
161 style="color:red"
162 <%
163 }
164 %>
165 href="SQL_Pages.jsp?ToPage=<%=p%>&search_txt=<%=search_txt%>">
166 <%=p%>
167 </a>
168 <%
169 }
170 }
171 %>
172 ]
173 <%
174 }
175 %>
176 </td>
177 </tr>
178 </table>
179 <TABLE border=1 bordercolor=RoyalBlue bgcolor=LightBlue width=800>
180 <tr>
181 <TD bgcolor=LightYellow width=150 align=center>学生姓名</TD>
182 <TD bgcolor=LightYellow width=50 align=center>性别</TD>
183 <TD bgcolor=LightYellow width=150 align=center>班级</TD>
184 <TD bgcolor=LightYellow width=100 align=center>语文</TD>
185 <TD bgcolor=LightYellow width=100 align=center>数学</TD>
186 <TD bgcolor=LightYellow width=100 align=center>物理</TD>
187 <TD bgcolor=LightYellow width=100 align=center>化学</TD>
188 </tr>
189 <%
190 //利用For循环配合PageSize属性输出一页中的记录
191 for(int i = 1; i <= PageSize; i++)
192 {
193 out.println("<TR>");
194 out.println("<TD align=center width=150>" + rs.getString("name") +"</TD>");
195 out.println("<TD align=center width=50>" + rs.getString("sex") +"</TD>");
196 out.println("<TD align=center width=150>" + rs.getString("class") +"</TD>");
197 out.println("<TD align=center width=100>" + rs.getInt("chinese") +"</TD>");
198 out.println("<TD align=center width=100>" + rs.getInt("maths") +"</TD>");
199 out.println("<TD align=center width=100>" + rs.getInt("physics") +"</TD>");
200 out.println("<TD align=center width=100>" + rs.getInt("chemistry") +"</TD>");
201 out.println("</TR>");
202 if(!rs.next()) //判断是否到达最后一笔记录
203 break; //跳出for循环
204 }
205 %>
206 </TABLE>
207 <TABLE border="0" width="700">
208 <TR valign=baseline align=center>
209 <td width=500> </td>
210 <%
211 if(ShowPage != 1)
212 {
213 %>
214 <TD Width=50>
215 <A Href=SQL_Pages.jsp?ToPage=<%= 1 %>&search_txt=<%=search_txt%>>
216 第一页
217 </A>
218 </TD>
219 <TD Width=50>
220 <A Href=SQL_Pages.jsp?ToPage=<%= ShowPage - 1 %>&search_txt=<%=search_txt%>>
221 上一页
222 </A>
223 </TD>
224 <%
225 }
226 if(ShowPage != PageCount)
227 {
228 %>
229 <TD Width=50>
230 <A Href=SQL_Pages.jsp?ToPage=<%= ShowPage + 1%>&search_txt=<%=search_txt%>>
231 下一页
232 </A>
233 </TD>
234 <TD Width=50>
235 <A Href=SQL_Pages.jsp?ToPage=<%= PageCount %>&search_txt=<%=search_txt%>>
236 最后页
237 </A>
238 </TD>
239 <%
240 }
241 %>
242 </TR>
243 </TABLE>
244 <FORM action=SQL_Pages.jsp method=POST>
245 <table border="0" width="800" align="center" cellspacing="0">
246 <tr>
247 <td width="700" align="center">
248 信息关键字搜索:
249 <input type="text" name="search_txt" size="17" value="<%=search_txt%>">
250 <input type="submit" value="搜索" name="B1">
251 </td>
252 </tr>
253 <tr>
254 <td width="700" align="center">
255 <font color="red">(如果关键字内容为空则列出所有信息)</font>
256 </td>
257 </tr>
258 </table>
259 </form>
260 </CENTER>
261 <%
262 rs.close();
263 statement.close();
264 con.close();
265 }
266 catch(Exception e)
267 {
268 System.out.println("Exception: " + e.getMessage());
269 }
270 %>
271 </BODY>
272 </HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -