一、整个JSP页面分成如下几个部分:
1 实现与MySQL数据库的连接;
2 实现数据的查询;
3 JSP页面的具体显示;
二、运行的结果如下:(说明:数据库MySQL、数据源:login、数据表:student)
三、代码实现如下:
<%@ page language="java" import="java.sql.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP连接SQL数据库实现数据分页显示</title>
</head>
<body>
<h1 align="center">JSP连接SQL数据库实现数据分页显示</h1>
<%
try
{//建立JDBC-ODBC桥驱动程序,用到java.lang包中的类Class,调用其方法forName().
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){}
try
{//创建连接对象con,它属于Connection类,然后用类DriverManager调用getConnection().
String url="jdbc:mysql://localhost/login?characterEncoding=utf-8";
Connection con=DriverManager.getConnection(url,"root",""); //根据自己的用户名和密码进行更改
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//创建SQL语句对象.
ResultSet rs=stmt.executeQuery("SELECT* FROM student");//执行SQL语句并返回结果.
int pageSize;//一页显示的记录数
int totalItem;//记录总数
int totalPage;//总页数
int curPage;//待显示页码
String strPage;
int i;
pageSize=10;//设置一页显示的记录数
strPage=request.getParameter("page");//获得待显示页码
if(strPage==null)
{
curPage=1;
}
else
{
curPage=java.lang.Integer.parseInt(strPage);//将字符串转换成整形
}
if(curPage<1)
{
curPage=1;
}
rs.last();//获取记录总数
totalItem=rs.getRow();
totalPage=(totalItem+pageSize-1)/pageSize;
if(curPage>totalPage) curPage=totalPage;//调整待显示的页码
if(totalPage>0)
{//将记录指针到待显示页的第一条记录上
rs.absolute((curPage-1)*pageSize+1);
}
i=0;
%>
<table border="1" align="center" bgcolor="#cccccc"><!--设置用以表格显示.-->
<tr>
<th width="50">学号</th>
<th width="50">姓名</th>
</tr>
<%//显示数据
while(i<pageSize && !rs.isAfterLast())
{
%>
<tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
</tr>
<%
rs.next();
i++;
}
rs.close();
stmt.close();
con.close();
%>
</table><p align="center">
共<%=totalItem%>个记录,分<%=totalPage%>页显示,当前页是:第<%=curPage%>页<br />
<%if(curPage>1){%><a href="page.jsp?page=1">首页</a><%}%>
<%if(curPage>1){%><a href="page.jsp?page=<%=curPage-1%>">上一页</a><%}%>
<%
for(int j=1;j<=totalPage;j++)
{
out.print(" <a href='page.jsp?page="+j+"'>"+j+"</a>");
}
%>
<%if(curPage<totalPage){%><a href="page.jsp?page=<%=curPage+1%>">下一页</a><%}%>
<%if(totalPage>1){%><a href="page.jsp?page=<%=totalPage%>">末页</a><%}%>
<%
}
catch(SQLException e1){out.println(e1);}
%>
</body>
</html>
四、在运行时,可能会报错
java.io.IOException: tmpFile.renameTo(classFile) failed
五 具体解决方案参考如下页面:
http://www.360doc.com/content/16/0904/22/31406094_588431702.shtml
(我的是刷新页面后成功的)