SQL执行查询时出现返回数据为空的问题
阅读原文时间:2021年04月20日阅读:1

当需要查询的时候,输入查询条件,数据库和SQL都是没问题的,数据库也有数据,但就是没有数据返回,这种情况一般来说很好解决,但对于初学者来说,这是很纠结的问题,一般来说,我们在做条件查询的时候,通常都会加一个判断,就是非空!那么问题来了,假如,我输入的是一个空的字符串呢?空字符串并不是空,而是一个值,所以,我们在查询的时候都是把值拼接起来的,所以会有空字符串的情况出现,故此,我们还需要在mybatis做个非空字符串判断

    <if test="Phone!= null and Phone != ''">
        and phone = #{Phone}
    </if>

判断手机号是否非空字符串,这样就可以查询出数据了。
那么另一个问题又来了,如果我把传过来的数据进行了加密再进行对比查询呢?对比的时候就是对比的加密后的空字符串,除非先把数据拿出来解密然后再对比,那就打不到加密的效果,故此,我们在接收传过来的数据的时候就应该做非空字符串判断,在进行数据对比

String Phone = request.getParameter("Phone");
    if (Phone != null && Phone.trim().length()>0) {
        map.put("Phone", AES128.encrypt(Phone));
    }

上面写的AES128是加密算法,有兴趣的朋友可以去了解一下。“Phone.trim().length()>0”就是我做的非空字符串判断,去空格后的长度大于0在执行。
每天一点经验积累,日积月累,成功之所在!