小小的模糊查询,竟来来回回修改了3次代码?找个电子厂上班吧

首先,架构是springboot+mybatis
模糊查询姓名、手机号,是不是很简单

第一次:

java

 String name =MapUtils.getString(param,"name");
 String telNumber =MapUtils.getString(param,"telNumber");

 if(StringUtil.isEmpty(name) && StringUtil.isEmpty(telNumber)){
    throw new xxxException(Err.Check,"姓名和手机号不能为空!");
}

mybatis xml

<if test="name != null and name != '' ">
     and s.name like concat('%', #{name,jdbcType=VARCHAR}, '%')
</if>
<if test="telNumber != null and telNumber != '' ">
     and s.tele_number like concat('%', #{telNumber,jdbcType=VARCHAR}, '%')
</if>

高高兴兴的提交了。。。

传参:

{
 "name":"1",
"telNumber":"1"
}

第二次:

前端说,姓名和手机号要放一个字段传

改吧

<if test="keyWord != null and keyWord != '' ">
              and (name like concat('%', #{keyWord,jdbcType=VARCHAR}, '%')
                or s.tele_number like concat('%', #{keyWord,jdbcType=VARCHAR}, '%')
      )
</if>

传参:

{
"keyWord":"1"
}

感觉很完美了。。提交!!!

第三次:

太年轻了,前端说:“传一个数字 1进来能查出几万条数据,前端页面崩了,加个限制吧”

<if test="keyWord != null and keyWord != '' ">
              and (name like concat('%', #{keyWord,jdbcType=VARCHAR}, '%')
                or s.tele_number like concat('%', #{keyWord,jdbcType=VARCHAR}, '%')
      )
</if>
<if test="limitNum != null and limitNum != '' ">
     limit #{limitNum}
 </if>

因为是那种弹出框的模糊搜索,不需要分页,也不需要展示所有数据,所以加个limit就好了

传:

{
"keyWord":"1",
"limitNum":"100"
}

终于搞定了,前端说:“可以了”

猜你喜欢

转载自blog.csdn.net/x18094/article/details/121539090