模糊查询遇到有输入框为空时会查出全部数据的问题

前台页面输入三个值,搜索,后台模糊查询后返回数据到前台。

我的Mapper中的sql如下

 <!--模糊查找-->
    <select id="selectLikeProduct" resultMap="BaseResultMap">
        select * from dangdang_product where dd_product_name like '%${productName}%' or dd_product_author like '%${productAuthor}%' or dd_product_press like '%${productPress}%'
    </select>

当遇到输入框有空值时,like ‘%%’就会永远是true,所以就会把所有的数据都查出来。

解决办法:在前台发请求时做判断,如果为空值,设置个默认值,默认值不与数据库该字段的值有重叠就好。我设置的是一个空格。代码如下

//出版社空值处理
			if(productPress == 0){
				productPress = " ";
			}
			//书名空值处理
			if(productName == ""){
				productName = " ";
			}
			//作者空值处理
			if(productAuthor == ""){
				productAuthor = " ";
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值