mysql limit的注意事项

今天突发联想,尝试用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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值