/**
* 比如在项目中我们经常遇到这样的问题,从前台我们选择了好多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就是我们要得到的格式
}
/***********第三种方法 结束**************/
}
}
分享到:
相关推荐
在数据库表中,可以有一个用户ID字段和一个密码数组字段,后者用于存储用逗号分隔的多个密码。 2. **连接数据库**:在ASP页面(如"test.asp")中,我们需要使用ADO(ActiveX Data Objects)建立与数据库的连接。这...
`b.help_topic_id (LENGTH(a.related_shop_ids) - LENGTH(REPLACE(a.related_shop_ids, ',', ''))+1)`计算出`related_shop_ids`中逗号的数量加1,确保遍历所有ID。 接下来,我们将拆分后的商店ID与`shops`表连接,...
在Oracle数据库中,有时我们遇到一个特殊的查询需求,即字段中的值是以逗号分隔的字符串,我们需要根据每个单独的值来查询数据。在这种情况下,简单的`LIKE`查询无法满足需求,因为`LIKE`通常用于匹配模式,而不是...
这通常发生在数据导入时,原始数据源以逗号为字段分隔符,但在Excel中,我们可能希望每个字段占据一行。本教程将详细解释如何使用Excel的VBA(Visual Basic for Applications)宏来实现这一转换过程。 首先,理解...
接下来,使用`foreach`循环遍历数组并打印每个记录的学号、姓名、年龄和身高。 通过这个类,你可以方便地处理CSV文件,将数据转换为PHP数组,便于进一步的处理和分析。同时,`ordenamultiarray()`方法提供了按指定...
这个类实现了PHP的`Iterator`接口,允许我们像遍历数组一样遍历CSV文件。下面是对`CSVIterator`类的详细说明: 1. **Iterator接口**: `Iterator`是PHP的一个内置接口,它定义了五个方法:`rewind()`、`current()`...
随后,使用`foreach`循环遍历数组,打印每个元素的“学号”、“姓名”、“年龄”和“身高”字段,这展示了如何从CSV文件中读取和处理数据。 总结起来,PHP中读取CSV数据并保存到数组的方法通常涉及以下步骤: 1. ...
- 对于要插入的数据(insert类型),函数会遍历数组,将所有键和值通过逗号分隔开,形成SQL语句的values部分。 3. SQL语句拼接: - 对于插入类型(insert),函数首先获取数组的所有键并将它们用反引号(`)包围,...
此外,$.each()方法可以遍历数组或对象,而$.ajax()用于执行异步HTTP请求,这些都是在实现导出功能时可能用到的基础工具。 在“可选择字段导出excel”的场景中,我们首先需要创建一个用户界面,让用户能够选择他们...
此外,如果字段中的数字是分隔开的(例如,用逗号或空格分隔),我们需要在解析时考虑到这些分隔符。 在实际应用中,你可能会遇到更复杂的情况,比如数据存储在文件中,或者需要处理的数据量非常大。在这种情况下,...
这里,`replace()`函数用于将输入字符串中的逗号(`,`)替换为JavaScript数组元素之间的引号和逗号(`,`)。这样,原本的字符串就被转换成了两个JavaScript数组`a`和`b`。 接下来,定义了一个循环来遍历这两个数组...
在编写代码时,开发者需要打开一个文件句柄,并遍历数组,使用fputcsv()将每一行数据写入文件。下面的错误代码中,可以看到多维数组在使用时,应该用逗号(,)来连接各个字段,但在错误代码中,误用了分号(;)作为...
CSV文件是以逗号分隔的数据值,每一行代表一条记录,每个字段之间用逗号隔开。如果字段中包含逗号或其他特殊字符,通常会用双引号括起来。例如: ``` "姓名","年龄","城市" "张三",30,"北京" "李四",25,"上海" ``` ...
在C++中与SQLite3数据库交互时,获取数据库表中的所有字段是一项常见的需求。本文将详细阐述三种常用的方法,帮助开发者有效地实现这一功能。 方法1:使用`sqlite3_get_table`函数 `sqlite3_get_table`是SQLite3...
- 数据处理:遍历数组,处理每个字段,可能包括去除引号、处理转义字符等。 - GUI设计:创建用户界面,展示CSV数据,允许用户进行搜索、排序、过滤等操作。 4. **设计与实现** CSV解释器可能包含以下组件: - ...
它的核心逻辑可能是遍历单元格数组,将每个元素转换为字符串,然后按照CSV的规则(逗号分隔,换行表示新行)拼接这些字符串,最后将结果写入文件。在MATLAB中,可以使用`fprintf`函数将数据写入文件,或者使用`...
12. C语言数组:在C语言中,数组是一个连续的内存空间,指针可以用来遍历数组。程序会输出9,因为指针p指向数组的第一个元素,遍历后输出最后一个元素的地址。 13. DOS命令:COPY A:*.* B:等价于DISKCOPY A: B:,都...
CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,每一行代表一条记录,每个字段之间用逗号隔开。在编程领域,CSV文件常用于数据导入导出,特别是在数据库管理和数据分析中。在.NET...
3. **设置属性值**:遍历数组,设置 `Names` 对象的各个属性。 4. **计算总金额**:累加每行数据中的金额字段。 #### 六、资源管理与异常处理 ```java try { inputStream.close(); bufReader.close(); } catch ...
例如,你可能有一个JavaScript数组,每一项代表一行数据,你可以通过遍历数组并拼接字符串来生成CSV: ```javascript const data = [['Name', 'Age'], ['John', 30], ['Jane', 25]]; const csvContent = data.map...