分页查询

Posted kiton

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页查询相关的知识,希望对你有一定的参考价值。

    <!-- 分页 -->
    <sql id="paging">
        <if test="isPage != null and isPage != \'\' ">
        <!-- start 开始页  length 总共显示几条记录(    从 length=start+1开始, 取出length条记录     )-->
            limit #{start}, #{length}
        </if>        
    </sql>
    
    <!-- 通过这种方式可以避免了where 条件中如果为空的话,sql语句出错 -->
    <sql id="pageWhere">
        <where>
            <if test="personid != null and personid != \'\' ">
                AND personid = #{personid}
            </if>
            <if test="personname != null and personname != \'\' ">
                AND personname like concat( concat( \'%\', #{personname} ), \'%\' )
            </if>
            <if test="personcname != null and personcname != \'\' ">
                AND personcname like concat ( concat(\'%\', #{personcname} ), \'%\' )
            </if>
            <if test="persontelephone != null and persontelephone != \'\' ">
                AND persontelephone like concat(\'%\', #{persontelephone}, \'%\')
            </if>        
        </where>
    </sql>    
    
    <!--在sql语句中 传入的参数parameterType 类型有两种(基本数据类型(int,string,long,Date),复杂数据类型 (类和Map) )
            获取参数的值   基本数据类型:     #{参数}     获取参数中的值
                        复杂数据类型: #{属性名},  map中则是#{key}
     -->
    <!-- 在sql语句的返回参数分为2中 ,resultMap (结果集) 和resultType(int, string, long, class)
        
        注意点: 在MyBatis 进行查询映射时,其实查询出来的每个属性都是放在一个对应的Map里面的
                其中键是属性名, 值则是其对应的值
        
     -->
    
    <!-- 分页查询 -->
    <select id="selectPerson" parameterType="Person" resultType="Person">
        select * from person
        <include refid="pageWhere"></include>
        <include refid="paging"></include>
    </select>
        
        
    <!-- 查询符合条件人员总数量  -->    
    <select id="selectPersonCount" parameterType="Person">
        selecte count(personcname) from person 
        <include refid="pageWhere"></include>
        <!-- 通过加条件语句判断出在输入条件范围内所有的人员数量  分页下面的总数 -->
    </select>
        
    

 

其中添加where条件的原因:

   可参照  http://www.cnblogs.com/caoyc/p/5574966.html  很详细

 

以上是关于分页查询的主要内容,如果未能解决你的问题,请参考以下文章

片段被视图分页器布局切割

Laravel 分页 数据丢失问题解决

MyBatis动态SQL标签用法

Symfony2 将哈希片段参数附加到分页 URL

FragmentStatePagerAdapter 视图分页器片段在活动重新创建后不显示

java web 分页查询