SQL执行查询时出现返回数据为空的问题
2017-09-14 17:32
369 查看
当需要查询的时候,输入查询条件,数据库和SQL都是没问题的,数据库也有数据,但就是没有数据返回,这种情况一般来说很好解决,但对于初学者来说,这是很纠结的问题,一般来说,我们在做条件查询的时候,通常都会加一个判断,就是非空!那么问题来了,假如,我输入的是一个空的字符串呢?空字符串并不是空,而是一个值,所以,我们在查询的时候都是把值拼接起来的,所以会有空字符串的情况出现,故此,我们还需要在mybatis做个非空字符串判断
判断手机号是否非空字符串,这样就可以查询出数据了。
那么另一个问题又来了,如果我把传过来的数据进行了加密再进行对比查询呢?对比的时候就是对比的加密后的空字符串,除非先把数据拿出来解密然后再对比,那就打不到加密的效果,故此,我们在接收传过来的数据的时候就应该做非空字符串判断,在进行数据对比
上面写的AES128是加密算法,有兴趣的朋友可以去了解一下。“Phone.trim().length()>0”就是我做的非空字符串判断,去空格后的长度大于0在执行。
每天一点经验积累,日积月累,成功之所在!
<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在执行。
每天一点经验积累,日积月累,成功之所在!
相关文章推荐
- pl/sql查询数据出现中文乱码问题的解决办法
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- hive中执行sql语句出现数据类型问题
- 关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- 使用原生sql查询数据返回object类型list时,转换数据列出现转换类型错误(但写法正确)
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- Mybatis程序中执行和单独执行同一条SQL出现结果不一致(部分数据没有查询出来)
- 在论坛中出现的比较难的sql问题:5(row_number函数 分页、随机返回数据)
- .NET sql查询返回DataTable数据量大的时候有严重的效率问题
- 调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题
- 如何用动态SQL返回临时表的组合查询数据
- 解决网友比较经典的SQL问题之数据查询汇总
- Flex SQLite: 一次执行多个SQL,查询两个表的数据,导入datagrid
- sql查询返回xml数据之应用【转载】
- sql查询时,出现 "在纤程模式下不支持异类查询和 OLEDB 访问接口的使用"问题