首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

遍历数组中字段,添逗号隔开

2012-12-25 
遍历数组中字段,加逗号隔开/*** 比如在项目中我们经常遇到这样的问题,从前台我们选择了好多id,在后台我们

遍历数组中字段,加逗号隔开
/** 
* 比如在项目中我们经常遇到这样的问题,从前台我们选择了好多id,在后台我们需要用一个数组来接, 
* 而我们真正要做的是通过sql来查询出和id有关的对象,这里我们经常要用到sql语句的in关键字 
* 但是我们只是接了一个数组,而真正要做的是要弄成这样的格式:from XXX where id in('xxx','xxx','xxx'); 
* 所以我们现在要做的是把数组弄成括号里面的那种格式 
*/ 
public class Test {  
    public static void main(String args[]){  
        //怎么从前台接的数组就不说了,我写了一个固定的string数组在下面,假如数组里面的就是我们从前台接来的id  
        String ids[]=new String[]{"120","121","122","124","125"};  
          
        /***********第一种方法  开始**************/ 
        StringBuffer sb = new StringBuffer();  
        for(int i=0;i<ids.length;i++){  
            sb.append("'" + ids[i] + "'");  
            if(i != ids.length -1){  
                sb.append(",");  
            }  
        }  
        //通过上面的StringBuffer我们已经得到了要拿到的格式,下面就可以写sql语句了  
        String hql = "from xxx where id in (" + sb.toString() + ")";  
        //通过下面的list集合我们就拿到了对象集  
        List list = xxxDAO.getHibernateTemplate().find(hql);  
        /***********第一种方法  结束**************/ 
          
          
        /***********第二种方法  开始**************/ 
          
        //通过增强for循环得到我们需要的格式  
        String needId = "";  
        for(String id : ids){  
            needId += "'" + id + "'" + ",";  
        }  
        needId = needId.substring(0, needId.length()-1);  
        //通过上面的这句代码我们已经拿到了想要的格式,接下来就可以放到sql语句当中去了  
        String needHql = "from xxx where id in (" + needId + ")";  
        //通过下面的list集合我们就拿到了对象集  
        List objectList = xxxDAO.getHibernateTemplate().find(needHql);  
        /***********第二种方法  结束**************/ 
          
        /***********第三种方法  开始**************/ 
        //通过iterator的迭代来得到我们需要的格式  这里只是举例 没有对应的vo和实现类  
        List<deptListVOImpl> xbs = deptListDAO.getDeptList(dproj_id, "xb");  
        if(xbs.size()>0){  
            Iterator it1 = xbs.iterator();  
            String xb = "";  
            while (it1.hasNext()) {  
                deptListVOImpl detail = (deptListVOImpl) it1.next();  
                xb += detail.getDeptName() + ",";  
            }  
            xb = xb.substring(0,xb.length()-1);  
            //现在拿到的xb就是我们要得到的格式  
        }     
        /***********第三种方法  结束**************/ 
    }  
      
      

热点排行