基于jpa/springData ,hibernate,mybtis的分页

本文介绍了在不同技术栈中实现分页查询的方法,包括Hibernate、JPA和MyBatis等。详细展示了如何设置起始位置和最大结果数量,并通过MyBatis配置文件示例说明了如何自定义SQL查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. page 对象可以自己创建,jpa,spring data 也提供了 ,其他两个没有提供

  2. 前台会传过来一个pageNo 当前页面,已知参数,需要后台自己查,总记录数,前台传过来的还有一个每页显示多少行,  这两个属性都可以在page中定义,当用户打开时,肯定是第一页,其他的几个参数都已可以用这三个参数给计算出来

  3. hibernate 是  criteria.setFirstResult(firstResult).setMaxResults(maxResults);

  4. jpa是 先创建一个PageRequest对象,然后在findAll(pageRequest);即可

  5. mybatis是 自己定义一个接口,参数是map,自己写sql语句查,下面这个是其配置文件


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<sql id="salesChanceQueryCondition">
             
            WHERE status = #{status}
            <if test="custName!=null">
                AND cust_name LIKE #{custName}
            </if>
             
            <if test="title!=null">
                AND title LIKE #{title}
            </if>
             
            <if test="contact!=null">
                AND contact LIKE #{contact}
            </if>
             
    </sql>
     
    <select id="getPagedPlanContent" parameterType="map" resultType="com.atuigu.crm.entity.SalesChance">
        SELECT * FROM (
            SELECT rownum rn, id,cust_name,title,contact,contact_tel,create_date , status
            FROM sales_chances 
            <include refid="salesPlanedChanceQueryCondition"/>
            
            <![CDATA[
                WHERE rn >= #{fromIndex} AND rn < #{endIndex}
            ]]>
    </select>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值