今天突发联想,尝试用mysql的limit进行分页,遇到如下情况:
(1)当limit后需要加参数d,如limit '+d+'是没用的,参数不能读出,而应写为"+d+",哪怕外围有"",如"select * from 表名 limit "+d+",5 ";
(2)但我在limit后面加上运算符依然不能出现结果,如limit "+d+"+5,是得不到结果的,意思就是假设"+d+"的值为5,limit "+d+"+5不会得到10,而是5+5,所以我个人觉得limit后不能加运算符.
下面是我分页代码,注意我没进行任何优化处理,也没关事务,只是随便写的,万万不能用于项目!
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String url =request.getContextPath();
int p =1;
if(request.getParameter("p")!=null){
p = Integer.parseInt(request.getParameter("p"));
}
int aye = 5 ;//每页显示记录数
int allye = 0;//总页数
Class.forName("com.mysql.jdbc.Driver");
Connection c=DriverManager.getConnection("jdbc:mysql://localhost/lm?user=root&password=root");
//访问的数据库的帐号密码
Statement s=c.createStatement();
String sql = "select * from page";
ResultSet rs = s.executeQuery(sql);
//rs.afterLast();
// System.out.println(rs.getRow());
%>
<table>
<%
int i =0;
int n = 0;
while(rs.next()){
i++;
%>
<tr><td>
</td></tr>
<%}
System.out.println(i);
allye = i%aye==0?i/aye:(i/aye)+1;
System.out.println("allye="+allye);
if(p==1){
sql = "select * from page limit 0,5";
}else{
System.out.println(p);
n=(p-1)*5;
System.out.println(n);
sql = "select * from page limit "+n+"+5,5";
}
System.out.println(sql);
rs = s.executeQuery(sql);
while(rs.next()){%>
<%=rs.getString("name") %>
<% }
%>
</table>
<%for(int j=1;j<=allye;j++){ %>
<a href = <%=url%>?p=<%=j%>><%=j%></a>
<%} %>
This is my JSP page. <br>
</body>
</html>