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

本文介绍如何将从前台接收到的ID数组转换为SQL IN条件语句的格式,以便进行数据库查询。提供了三种不同的Java实现方法:使用StringBuffer、增强for循环和Iterator迭代。每种方法都通过添加逗号和单引号,构建出如"id in ('xxx','xxx','xxx')”的SQL片段。" 20299369,575900,ACPI原理解析:BIOS中的软件实现,"['ACPI', 'BIOS', '电源控制', '驱动开发', '软件接口']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值