查询语句已经出来了,分页要怎么写

![图片说明](https://img-ask.csdn.net/upload/201805/10/1525923166_968037.png)图片说明

图片说明

sql 语句用 limit index ,size 。
页面然后传 index 和size 两个值 来分页 一般 用ajax 来刷新

selct * from tablename where name="xxx" limit index,size

index开始查的位置
size要查多少条

以mysql + mybatis 为例
一般在service层, 在执行查询之前加上:

PageHelper.startPage(page , size);
// mapper查询接口

这样就会查询语句最后加上 (limit size * (page - 1) ,size )
望采纳,谢谢。

是用limit函数

取前5条数据

select * from table_name limit 0,5

或者

select * from table_name limit 5

查询第11到第15条数据

select * from table_name limit 10,5

limit关键字的用法:

LIMIT [offset,] rows

offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。

order by 排序, 传page和size。

用limit就OK了

这种可以让后台接口做好分页,传参数就行吧

mysql的用limit得到想要的数据就可以,oracle可以用rownum

package com.book.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BaseDao {
public Connection getConn(){
Connection conn=null;
以下是JDBC实现连接Oracle数据库的过程
try {
//1.加载驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.定义连接字符串
String url="jdbc:oracle:thin:localhost:1521:orcl";
String name="scott";
String pwd="123456";
//3.创建connection连接
conn=DriverManager.getConnection(url,name,pwd);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}

}
//以上代码是连接Oracle数据库的类

package com.book.dao;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.entity.Books;

public class BooksDao extends BaseDao{

public List pages(int curpage,int pagesize){//实现分页显示的方法,注意连接的是Oracle数据库。curpage表示当前页;pagesize表示页面大小,就是一页显示多少行数据
List list=new ArrayList();
int begin=(curpage-1)*pagesize+1;//begin表示开始记录数,
比如是1到10行记录,则begin是1,end是10,共10条记录。
int end=curpage*pagesize;//end表示结束记录数
Connection conn=super.getConn();
//接着上一个类,4。创建SQL语句
String sql="select * from "
+ "(select b1.*,rownum rn from "
+ "(select * from books order by bookid) b1) b2 where bookid between ? and ?";

   try {
    //5.创建statement(发送sql语句到数据库)
    PreparedStatement ps=conn.prepareStatement(sql);

    Class<?> clz=Class.forName("cn.entity.Books");
    ps.setInt(1,begin);
    ps.setInt(2, end);
    //6.发送并执行
    ResultSet rs=ps.executeQuery();

    //以下代码是应用反射技术,是返回的数据是一个个对应着数据库表中一个个记录行的对象
    while(rs.next()){
        Books obj=(Books) clz.newInstance();

        Field []fs=clz.getDeclaredFields();

        for(Field f:fs){
            Object value=rs.getObject(f.getName());
            f.setAccessible(true);

            if(f.getType().getName().equals("int")||f.getType().getName().equals("java.lang.Integer")){
                f.set(obj, Integer.parseInt(value.toString()));
            }else if(f.getType().getName().equals("double")||f.getType().getName().equals("java.lang.Double")){
                f.set(obj, Double.parseDouble(value.toString()));
            }else{
                f.set(obj, value);
            }
        }
        list.add(obj);//将一个个对象添加到List集合中
    }
    //7./关闭连接
    rs.close();
    ps.close();
    conn.close();
} catch (SQLException | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

   return list;

}

}