`

关于for循环的跳出问题技巧及数据集的处理方式

阅读更多


如图所示:对结果集的操作主要步骤如下

String sql = "select * from emp";
pstmt = conn.prepareStatement(sql);

//第四步,返会结果集
rs = pstmt.executeQuery();
while (rs.next()) {
int ID = rs.getInt("ID");
String org_code = rs.getString("org_code");

String org_name = rs.getString("org_name ");

String org_count = rs.getString("org_count");

}

这样就能够得到各个字段的值进而对各字段进行操作,这是jdbc提供的处理方法

但如果情况如下使用Hibernate查询返回的List 需要对其用Iterator遍历拆解在放入到实体中

代码如下:

 

public Pagination queryOrg_InfoCount(int siteId,int areaId ,String orgName, int pageNo, int pageSize) {
  ArrayList<Org_Info> org_Info_list = new ArrayList();
  Org_Info bmsg=null;
  String sql="";
  try {
   if(areaId!=0)
   {
    if(orgName!=null)
    {
     sql="select a.id,a.org_code,a.org_name,(select count(*) from llt_report b where b.send_org_id=a.id) as org_count from llt_org_info a where a.area_code="+ areaId + " and (a.org_name like '"+ orgName+ "' or a.org_code like '"+orgName+"') order by org_count desc";
    }
    else
    {
     sql="select a.id,a.org_code,a.org_name,(select count(*) from llt_report b where b.send_org_id=a.id) as org_count from llt_org_info a where a.area_code="+ areaId + "  order by org_count desc";
    }
   }
   else
   {
    sql="select a.id,a.org_code,a.org_name,(select count(*) from llt_report b where b.send_org_id=a.id) as org_count from llt_org_info a order by org_count desc";
   }
   Query query =getSession().createSQLQuery(sql);
   int totalCount = query.list().size();
   Pagination p = new Pagination(pageNo, pageSize, totalCount);
   query.setFirstResult(p.getFirstResult());
   query.setMaxResults(p.getPageSize());
   List list =query.list();
   Iterator it=list.iterator();
   Object [] results;
   while(it.hasNext())
   {
    bmsg = new Org_Info();
    results=(Object[]) it.next();
   
    for(int i=0;i<results.length;i++)
    {
     bmsg.setId(Integer.parseInt(results[i].toString()));
     bmsg.setOrg_code(results[i+1].toString());
     bmsg.setOrg_name(results[i+2].toString());
     bmsg.setFource_count(results[i+3].toString());
     i = i + results.length - 1; //注意这是重点
     org_Info_list.add(bmsg);
    }
    p.setList(org_Info_list);
   
   }
   return p;
  } catch (Exception e) {
   e.printStackTrace();
  }
  return null;
 
 }
 

如上所示:注释行去掉程序就会在循环里重复读取某一行数据直到报错,这时要读取下一行数据就得跳出for 到while中

这时如注释行:对i索引操作使其条件自相矛盾跳出循环重而达到目的



 

  • 大小: 89.3 KB
分享到:
评论

相关推荐

    SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)

    此外,笔记还展示了如何在存储过程中使用for循环来遍历结果集,这在处理大量数据时非常有用。例如: ```sql BEGIN FOR recordOne IN (SELECT id, name FROM cfftest.student) LOOP -- 打印处理结果 PRINT ...

    c语言常见问题集和google搜索算法

    - 控制流程:学习if语句、switch语句、for循环、while循环等控制结构。 - 函数:理解函数的定义、调用、参数传递和返回值。 - 数组和指针:熟悉数组的使用,理解指针的概念,包括指针变量、指针运算和动态内存...

    javascript技巧集

    14. **循环结构**:`for` 循环结构通常形式为 `for(initial; condition; update) { ... }`。 15. **循环控制**:`break` 语句用于跳出当前循环。 16. **函数定义**:`function functionName(parameters) {...}` ...

    《训练逻辑思维的100道趣题》C#程序版

    3. **数组与集合**:处理数据集时,数组和集合(如List)是常用的数据结构。理解它们的工作原理,以及如何通过索引、遍历或查询操作来操作这些数据,对解决问题至关重要。 4. **函数与方法**:编写可重用的代码块是...

    java基础.zip

    - 遍历数组的方法,如for循环和增强for循环。 2. **选择结构.docx**: - Java中的条件语句,如if语句和switch语句,用于根据不同的条件执行不同的代码块。 - if-else语句的结构和嵌套使用,以及如何进行条件判断...

    游标的用法

    以下是一个关于如何在SQL Server中使用Transact-SQL游标处理数据的示例: ```sql -- 创建一个游标以查询客户信息 DECLARE CustomerCursor CURSOR FOR SELECT acct_no, name, balance FROM customer WHERE province ...

    打印出100以内的质数Java

    - **多线程**:在大型数据集上,可以考虑使用多线程并行处理,加快计算速度。 总结,打印100以内的质数是学习Java基础和算法的好练习。通过这个过程,你可以深入了解循环、条件语句、数学运算以及算法设计等核心...

    用python解释约瑟夫环

    约瑟夫环(Josephus Problem)是一个著名的理论问题,它源于古罗马时期的历史事件,但被数学家们抽象出来作为理论研究。在这个问题中,人们站成一个圈,并按照一定的顺序报数,每次数到特定数值的人会被排除出圈,...

    。net面试题综合集

    这些面试题涵盖了C#编程语言的基础知识,如字符串操作、网络通信、数据访问以及优化代码性能的技巧,这些都是.NET开发人员应具备的核心技能。理解和掌握这些知识点对于准备.NET相关的面试至关重要。

    我平时用的ASP实用基础

    Exit For ' 当满足某个条件时跳出循环 End If ' 其他循环体内的代码 Next ``` ### 数据库操作 #### 1. 连接数据库 在ASP中连接数据库通常使用ADO (ActiveX Data Objects)。以下示例展示了如何连接一个Access...

    C语言学习笔记

    break和continue语句用于跳出当前循环或跳过本次循环的剩余部分。通过学习循环结构,我们能够编写出能够处理重复任务的程序。 数组章节将介绍一维数组和二维数组的概念、定义、初始化和应用。字符数组是特殊的数组...

    学习C语言常用的几个问题的算法和程序-综合文档

    在学习C语言的过程中,经常会遇到一些经典的问题,如判断素数、实现各种排序算法等。...此外,还可以尝试将这些算法应用到其他场景,比如排序大型数据集,或者将它们与其他算法结合,如结合动态规划等高级技术。

    谭浩强C++程序设计-习题程序

    1. **基本语法**:包括变量声明、数据类型、运算符、流程控制(如if-else,switch-case,for,while,do-while循环)。 2. **函数**:了解如何定义和调用函数,参数传递,以及递归函数的使用。 3. **数组和指针**...

    vb.net测试试卷

    - **For循环**: VB.NET中用于重复执行一段代码块的控制结构。格式为: ```vbnet For variable = start To end [Step increment] ' 循环体 Next ``` - 示例: 计算1到20之间所有奇数除以5后的累加和。 ```vbnet ...

    CSP模拟考模拟题附答案

    然而,在某些特定场景下,如错误处理或跳出多重循环时,`goto`语句可以提供更简洁的解决方案。 - **应用场景**:尽管在C++等现代语言中,异常处理机制和循环结构提供了更好的替代方案,但在特定情况下,如复杂的...

    张孝祥正在整理Java就业面试题大全

    从给定的文件信息中,我们可以提炼出一系列与Java编程语言相关的知识点,这些知识点主要集中在Java的基础语法、数据类型、运算符、流程控制结构、以及一些面试中常见的陷阱和细节。下面,我们将对这些知识点进行详细...

    谭浩强c语言基础设计

    - **6.4 for循环**:讨论初始化、条件判断和迭代控制的循环。 - **6.5 循环嵌套**:探讨循环间的嵌套使用。 - **6.6 break和continue语句**:对比这两个用于跳出或跳过循环的关键字。 - **第7章:数组** - **...

    程序设计语言C_习题集(含答案).pdf

    6. 循环控制表达式:在`while`循环中,表达式`t=l`(假设l代表1)始终为真,因此循环会一直执行,直到遇到`break`语句或其他跳出循环的条件。正确的描述是`B) 循环控制表达式的值为1`。 7. 实参与形参的数据传递:...

Global site tag (gtag.js) - Google Analytics