`

实例化的对象和引用...while(**.next()){实例化位置 、、***list.add(实例化的那个对象) }

 
阅读更多
public List<NewsCategory> getNewsCategoryList() {
		List<NewsCategory> newsCategoryList = new ArrayList<NewsCategory>();
		String sql ="select * from news_category";
		Object[] params = {};
		if(this.getConnection()){
			ResultSet rs = this.executeSQL(sql, params);
			try {
				while(rs.next()){
					//如果实例化NewsCategory写在while循环外 ,会导致list里面add进去6条重复数据!!!
					NewsCategory newsCategory = new NewsCategory();
					newsCategory.setId(rs.getInt("id"));
					newsCategory.setName(rs.getString("name"));
					newsCategory.setCreateDate(rs.getTimestamp("createDate"));
					
					newsCategoryList.add(newsCategory);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				this.closeResource();
			}
		}
		
		return newsCategoryList;
	}

List 的add方法 添加的是 new出来对象的引用变量newsCategory,所以 如果要需要存储不同的对象 ,就要各自用new来实例化。

 

如果实例化NewsCategory写在while循环外,只是实例化了一个NewsCategory对象

          new操作也就是会在堆内存中分配一个对象的内存引用变量 newsCategory指向这个内存中的对象

 所以:List 的add方法增加的是同一个变量 newsCategory,并增加了6次

分享到:
评论

相关推荐

    set.list.map接口

    //先实例化一个set Set&lt;String&gt; stringSet=new HashSet(); //向set里面添加元素 stringSet.add("123"); stringSet.add("wer"); stringSet.add("345"); //将set里的元素取出 Iterator&lt;String&gt; stringIter=...

    实例14列表(java新手绝对实例)

    5. **实例化与基本操作**: 在实例14中,我们将学习如何创建ArrayList和LinkedList对象,向列表中添加元素,以及使用迭代器遍历并操作列表。例如,`List&lt;String&gt; myList = new ArrayList();` 创建了一个存储字符串...

    vb.net小代码

    12. **模块(Module)**:VB.NET中的模块可以包含共享的常量、变量、过程和函数,但不能实例化。`Module Module1`用于定义模块。 13. **XML支持**:VB.NET提供了强大的XML操作能力,如内联XML字面量和XML属性,使得...

    java单向链表代码实现

    在Java编程中,单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的引用。这个数据结构允许快速插入和删除操作,但不支持随机访问。下面我们将深入探讨Java中单向链表的...

    数据库实体对象转换JavaBean_数据库对象转Javabean_

    本文将详细讲解如何将数据库实体对象转换为Java Bean对象,以实现数据的有效封装和处理。 首先,我们需要理解数据库实体对象和Java Bean的概念。数据库实体对象通常指的是在数据库中的一条记录,它包含了表中的所有...

    迭代器模式代码示例

    4. **具体聚合对象(Concrete Aggregate)**:实现聚合对象接口,维护一个元素集合,并提供创建具体迭代器的实例。 让我们通过一个简单的Java示例来理解迭代器模式: ```java // 聚合对象接口 interface ...

    Collection集合基本练习1

    3. **多态与ArrayList**:在main()方法中,可以使用多态的方式实例化ArrayList对象,并存储特定类型的数据,如String。 4. **迭代器与泛型**: - 迭代器(Iterator):用于遍历集合中的元素,提供了`hasNext()`和`...

    ( 【C#实例】链表实现自制List类

    本实例将探讨如何使用链表来实现一个自定义的List类。 链表是一种线性数据结构,由一系列节点(也称为元素或项)组成,每个节点包含数据和指向下一个节点的引用。与数组不同,链表的元素在内存中不是连续存储的,这...

    Ajax实现局部动态更新实例[参考].pdf

    while (rs.next()) { Map, Object&gt; dataMap = new HashMap(); dataMap.put("name", rs.getString("name")); dataMap.put("grade", rs.getString("grade")); dataMap.put("score", rs.getString("score")); ...

    C#摇奖机

    通过实例化Random类,我们可以获取到一系列随机数。例如,如果摇奖号码范围是1到100,我们可以用`new Random().Next(1, 100)`来生成一个在这个范围内的随机整数。 2. **控制台交互**:由于描述中没有提及图形用户...

    C# 数据结构 链表 原代码

    C# 是一种面向对象的编程语言,提供了丰富的库和工具来实现各种数据结构,包括链表。在这个C#实现的链表示例中,我们将探讨链表的基本概念、它的内部工作原理以及如何在C#中创建和操作链表。 链表不同于数组,数组...

    echart 连接mysql 例子

    while (rs.next()) { Map, Object&gt; item = new HashMap(); item.put("name", rs.getString("column_name1")); item.put("value", rs.getInt("column_name2")); // 添加更多字段... data.add(item); } ``` 6. **...

    双色球 红球随机取c# .net3.5应用程序

    通过实例化这个类并调用其`Next()`方法,我们可以得到一个指定范围内的随机整数。对于双色球的红球部分,我们需要在1到33之间生成6个不重复的随机数。 ```csharp Random random = new Random(); List&lt;int&gt; red...

    C# form抽奖

    这可以通过初始化`Random`实例并使用`Next`方法实现。为了避免重复,可以将生成的随机数存储在一个集合中,并检查新生成的数是否已存在。 ```csharp Random random = new Random(); List&lt;int&gt; drawnNumbers = new ...

    java链表 链表的讲解 java源代码加注释

    至于`TestShape.java`,这可能是一个测试类,用于实例化`LinkList`并执行各种操作,比如添加元素、删除元素、打印链表等,以验证链表功能的正确性。例如: ```java public class TestShape { public static void ...

    javabean连接数据库

    while (rs.next()) { UserBean user = new UserBean(); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); users.add(user); } } catch (SQLException e) { e.printStackTrace(); } ...

    java写的递归建树型结构

    使用变量,我们可以实例化这些类,然后通过递归方法连接它们,形成层次结构。 5. **Java源码分析**:在`recursionBuildTree`这个文件名中,我们推测可能包含一个名为`recursionBuildTree`的函数,这是实现递归构建...

    随机数生成(C#)

    uniqueNumbers.Add(random.Next(1, 101)); } ``` 7. **自定义随机数生成器** 对于更复杂的随机数需求,如特定分布的随机数,你可以继承`Random`类并重写其内部算法,或者使用第三方库,如`System.Numerics....

    自定义一个包含10个元素的一维int数组,并在声明语句中为其赋值;使用循环语句,随机选取该数组中的5个不重复的数据

    注意,`System.Random`类的实例化通常建议在类级别完成,避免多次实例化导致的随机数序列可预测性问题。 总结,本题涉及到的知识点包括: 1. C#中数组的声明和初始化 2. 随机数生成器`System.Random` 3. 使用循环...

    集合类编程题(2),使用迭代器(2).zip

    在Java编程中,集合类是数据结构的一种抽象,它提供了存储和操作一组对象的方法。本题目涉及的是集合类编程和迭代器的使用,这在Java编程...同时,这个题目也涉及到面向对象编程的基本原理,如类的定义和对象的实例化。

Global site tag (gtag.js) - Google Analytics