JFinal中in查询传递什么格式的参数?

栋11 发布于 2013/11/21 16:45
阅读 2K+
收藏 0

@JFinal 你好,想跟你请教个问题:

在我的项目中,需要做一个in查询,in查询的参数需要传递什么格式的呢,我试了String数组以及List<String>,发现都不行,求助!

加载中
0
小石头哥
小石头哥
个人觉得自己组装成一个 字符串就行吧 比如in(?)  ?="1,2,3,4"
zrc
zrc
试过了,只能删除 第一条。
0
栋11
栋11

引用来自“小石头哥”的答案

个人觉得自己组装成一个 字符串就行吧 比如in(?)  ?="1,2,3,4"

解决问题了,jdbc不支持参数话的in查询,只能用拼接,

StringBuilder sql = new StringBuilder("select * from user where name in (\"");  
   for (String n : names) {  
       if (sql.length() > 0)  
            sql.append(", ");  
       sql.append(n);  
   }  
   sql.append("\")");  
   User userList = User.dao.find(sql.toString());

 

栋11
栋11
是呀,但是好像没有其它办法了
光石头
光石头
这样写 很容易就被注入了
0
尚俊
尚俊

用?号拼接就不会 纯在sql注入的问题了    

StringBuffer where = new StringBuffer(50);
    where.append(" WHERE p1.catId IN ( ");
    for (int i = 0; i < productSize; i++) {
      if (i > 0) {
        where.append(",?");
      } else {
        where.append("?");
      }
    }
    where.append(" )");

0
jelly_oy
jelly_oy

刚好遇到这样的问题,学习了

返回顶部
顶部