前台传入多个参数(数组格式),拼接成字符串中间用逗号隔开,传入到sql中用in查询.


在开发中,我们常常需要把前台input传入的多个值的数组,拼接成一个字符串,中间用","隔开,再传入到后台做查询

String []  strs = {"铜川","安康","商洛","延安","宝鸡","汉中","榆林","咸阳","西安"};  
        StringBuilder sb = new  StringBuilder();  
        for (int i = 0; i < strs.length; i++) {  
            sb.append("'"+strs[i]+"',");  
        }  
  
     String str =    (sb.substring(0,sb.length()-1)).toString();//把最后多余的","去掉 

 

上面这种方法会比较耗时,可能会有String存不下的情况,所以用以下方法存入的话,会更有效率,更安全.

    String []  strs = {"铜川","安康","商洛","延安","宝鸡","汉中","榆林","咸阳","西安"};  
            StringBuilder sb = new  StringBuilder();  
            for (int i = 0; i < strs.length; i++) {  
                sb.append("'"+strs[i]+"'");//拼接单引号,到数据库后台用in查询.  
                if(i!=strs.length-1){//前面的元素后面全拼上",",最后一个元素后不拼  
                    sb.append(",");  
                }  
            }  

这种方法和前面输出结果一样,不用做字符串切割最后一位的逗号,更简洁,这样,就可以传入到后台做查询啦(mybatis里in是(${str})这样传值的,需注意是$,而不是#)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM