根据时间段模糊搜索及排序

本文适合初学者,作者分享了在Java开发中如何实现MySQL的模糊搜索和分页查询,提供了可以直接使用的SQL代码示例,包括关键参数、Mapper层的处理方法,并详细解释了代码逻辑,特别指出在Mapper层直接判断key值的优化技巧,以及如何处理时间段查询和排序。
摘要由CSDN通过智能技术生成

刚接触开发工作的时候,一个小小的模糊搜索都会琢磨半天。为了方便以后随时取用我在这里记录一下 并叙述一下分页的详细过程。适合小白新手。

作者分享的代码都是可以直接复制取用的(只需修改参数即可)

sql也可分开来写,这里整合到一块了方便取用

首先分页的实现,需要的参数(控制层接收参数)

 在就是最关键的mapper层(之前在这里犯了个错误,我可以直接在这里判断key值,我之前是在逻辑层对key值进行判断比较麻烦一些)

将参数全部传入方法内

<select id="getListForPage" resultType="com.zufeng.zftdhsxt.domain.ZfUsers" resultMap="BaseResultMap">
    select zf.id, zf.head, zf.account, zf.position, zf.prereview, zf.qyzt, zf.registrationtime, zf.sjh, zf.dw, zf.email, zf.ssxz, zf.uname ,zd.NAME ,zf.UpdateTime from zf_users zf left join zf_departments zd on
    zf.DEPARTMENTID=zd.ID
    where 1=1
          <if test="key !=null and key !=''" >
       and   concat( IFNULL(ACCOUNT,''),IFNULL(DEPARTMENTID,''),IFNULL(POSITION,''),IFNULL(PREREVIEW,''),
                    IFNULL(QYZT,''),IFNULL(SJH,''),IFNULL(zf.UpdateTime,'')) like concat('%',#{key},'%')
          </if>
    <if test=" startTime!=null and startTime!=''">
        AND REGISTRATIONTIME &gt;= CONCAT('','${startTime}',' 00:00:00')
    </if>
    <if test=" endTime!=null and endTime!=''">
        AND REGISTRATIONTIME &lt;= CONCAT('','${endTime}',' 23:59:59')
    </if>

      order by zf.UpdateTime desc
</select>

直接在这里判断key值,是否为null,下面是ifnul是判断多个参数是否为空, 在下面是时间段查询,看前端需要根据什么字段查询,换字段即可,最后一个是根据时间排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值