前台传入一个用户名数组 根据这个数组作为查询的条件 返回一个list集合
我想到的方法是数组拼接成一个字符串("李世民,李渊,李小龙")用in吗?
不过有的查询条件数据库并没有记录匹配!程序会报错没有这个列。这个怎么破?
我爱 拼字符串;
建议你不要这么做!
java的用prepareStatement来做。
select*fromuserswherenamein(?,?,?)
根据传入的数组长度产生?符号就可以了。
我爱 拼字符串;
建议你不要这么做!
java的用prepareStatement来做。
select*fromuserswherenamein(?,?,?)
根据传入的数组长度产生?符号就可以了。
匹配成千上万个用户名称?什么样的需求场景?
String[]usernameArray=["张","李","王"];//动态产生in表达式示例StringBuildersb=newStringBuilder("usernamein(");for(inti=0;i<usernameArray.length;i++){sb.append('?');if(i<usernameArray.length-1){sb.append(',');}}sb.append(')');Stringsql="select*fromuserswhere"+sb.toString();//下面执行sql,传入预编译参数等。。。比较简陋的方法。
匹配成千上万个用户名称?什么样的需求场景?
String[]usernameArray=["张","李","王"];//动态产生in表达式示例StringBuildersb=newStringBuilder("usernamein(");for(inti=0;i<usernameArray.length;i++){sb.append('?');if(i<usernameArray.length-1){sb.append(',');}}sb.append(')');Stringsql="select*fromuserswhere"+sb.toString();//下面执行sql,传入预编译参数等。。。比较简陋的方法。
回复 @web4j:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:Unknowncolumn'senna1960'in'whereclause'回复 @唏嘘猪肉佬:代码或异常贴出来让人家帮你看。回复 @web4j:第二个问题我卡在这里不知道怎么办了就是对于查询条件如果有一个找不到记录,代码就出错了找不到记录是经常要发生的这拼接的是SQL语句,但没有直接将查询参数拼接进去,避免了SQL注入。第二个问题不知道你怎么做的,不明白。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。