`
zhxw121
  • 浏览: 62075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

遍历数组在元素中加逗号

SQL 
阅读更多
/**
 * 比如在项目中我们经常遇到这样的问题,从前台我们选择了好多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就是我们要得到的格式
        }   
		/***********第三种方法  结束**************/
	}
	
	
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics