我是靠谱客的博主 拼搏哈密瓜,最近开发中收集的这篇文章主要介绍java使用sql语句中使用like来传参数出现java.util.UnknownFormatConversionException:Conversion=,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
今天在修改一个很古老项目的时候,有一个需求就是要在sql查询里使用like来传递参数,进行模糊查询。
如下所示:
sql_Static_person = String.format(
"select * from t_info where HD='%s' and (GG='%s' or GG is null)
and BS<=1 and ZH='%s' and flag=0 and bz like %s ",aa(), bb(), cc(),dd());
其实需求很简单,就是把dd()的参数值直接传到bz like 后的%s里,尝试里很多办法,一开始使用concat进行连接,发现总是出现
Conversion = '''的错误,java.util.UnknownFormatConversionException:Conversion=''';
sql_Static_person = String.format(
"select * from t_info where HD='%s' and (GG='%s' or GG is null)
and BS<=1 and ZH='%s' and flag=0 and bz like concat('%',%s,'%') ",aa(), bb(), cc(),dd());
看着报错,应该是数据格式的问题,于是又想到里转义,如下所示:
sql_Static_person = String.format(
"select * from t_info where HD='%s' and (GG='%s' or GG is null)
and BS<=1 and ZH='%s' and flag=0 and bz like concat('%',%s,'%') ",aa(), bb(), cc(),dd());
很遗憾还是出现同样的错误,于是突然想到String.format处理%的转义应该不是这种形式,应该是%% 对% 进行转义,于是如下所示:
sql_Static_person = String.format(
"select * from t_info where HD='%s' and (GG='%s' or GG is null)
and BS<=1 and ZH='%s' and flag=0 and bz like '%%%s%%' ",aa(), bb(), cc(),dd());
代码成功运行,说明一点,java基础忘记差不多了。。。
还有一点,奉劝不要这么在代码里写SQL,如果暴露的互联网上,且存在安全信息,就会存在SQL注入问题,要避免这样写。
最后
以上就是拼搏哈密瓜为你收集整理的java使用sql语句中使用like来传参数出现java.util.UnknownFormatConversionException:Conversion=的全部内容,希望文章能够帮你解决java使用sql语句中使用like来传参数出现java.util.UnknownFormatConversionException:Conversion=所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复