首先,架构是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"
}
终于搞定了,前端说:“可以了”