-
publicstaticList<User>getUsers()
- {
- Connectionconn=DB.getConn();
-
List<User>list=newArrayList<User>();
-
Stringsql="select*fromuser";
- ResultSetrs=DB.executeQuery(conn,sql);
-
try
- {
-
while(rs.next())
- {
-
Useru=newUser();
-
u.setId(rs.getInt("id"));
-
u.setUsername(rs.getString("username"));
-
u.setPassword(rs.getString("password"));
-
u.setPhone(rs.getString("phone"));
-
u.setAddr(rs.getString("addr"));
-
u.setRDate(rs.getTimestamp("rdate"));
- list.add(u);
- }
- }
-
catch(SQLExceptione)
- {
- e.printStackTrace();
- }
-
finally
- {
- DB.closeRs(rs);
- DB.closeConn(conn);
- }
-
returnlist;
- }
老师,为什么User u = new User(); 这句话放在循环体外,再从list中读数据时,假设数据库中有三条记录,它取出的是三条相同的记录,且都是最后一条记录呢??为什么放入到的循环体内就正常了呢???
瓣瓣(503398720) 22:07:16
放在外边的话 相当于list中只放了一个user 当然结果集的最后一条 就是封装数据的这个user
瓣瓣(503398720) 22:08:58
User u = new User(); 把它放在循环里的话 就是每次进入循环体 都会新建一个user对象 每个user封装不同的数据 就正常了
双东女青(82853546) 22:10:08
在循环体外,当然是相同的对象了
双东女青(82853546) 22:10:54
只有放在里面,才倒每走一次循环,实例化一个对象
大块头(305347899) 22:12:01
意思是说如果放在外面的话只循环一次???
大块头(305347899) 22:12:22
两位两解释一下
双东女青(82853546) 22:13:42
循环了三次,不过只实例化了一个 use对象
大块头(305347899) 22:14:34
但照我的理解,,虽然用的是同一个user但它们的内容是不一样的啊.....何况为什么list中第一条数据就是数据库中的第一条数据了
双东女青(82853546) 22:15:14
内容是不一样,每循环一次,后一次覆盖了前一次的值
双东女青(82853546) 22:15:28
所以才会返回的结果是三条一样的
大块头(305347899) 22:15:41
但它每一次都add了啊??
双东女青(82853546) 22:19:47
list.add加的是同一个对象呀
大块头(305347899) 22:20:15
你
们是说.它每一次add的时候相当于是指向了u的内容,但u的内容到结束循环的时候已经变成了最后一条的记录的内容,所以list中的每一个记录都是指向
u这个对象,而此时u的内容已经是最后一条记录的内容了,所以list中的每一条数据的内容都是最后一条记录中的内容,,是这样的意思吗?双东女青(82853546) 22:20:23
对象的值由于变化而造成list中的记录是一样的,是同一对象
双东女青(82853546) 22:20:59
是的
双东女青(82853546) 22:21:09
因为这个list中同一个对象
双东女青(82853546) 22:21:39
对象由于循环而改变成了最后一条记录的值,所以就是这样子了
双东女青(82853546) 22:22:18
在循环体内的话,就是每次循环都生成了一个新的对象。
大块头(305347899) 22:22:34
原来如此
双东女青(82853546) 22:22:40
list中加入的就是三个对象了噻。。
大块头(305347899) 22:23:21
谢谢了
相当于加入的是同一个人,虽然它的衣服每循环一次,就变一次,并且list中都增加一个人,但因为是同一个人,它们的值都是一样的,所以到最后是最后一条的记录,且每一个都是相同的内容
分享到:
相关推荐
static inline void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next) { next->prev = new; new->next = next; new->prev = prev; prev->next = new; } static inline void...
return super.executeSql(sql, user.getUsername(),user.getSex(),user.getAge(),user.getTellphone(),user.getAddress(),user.getPermission(),user.getPassword(),user.getUserno()); } //删除 public ...
List<User> filteredList = userList.stream().filter(user -> user.getAge() > 25).collect(Collectors.toList()); System.out.println(filteredList); ``` 在上面的例子中,我们使用 `stream()` 方法将 List 集合...
list.add(map1); list.add(map2); list.add(map3); SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.users, new String[]{"user_name","user_ip"}, new int[]{R.id.user_name,R.id.user_ip})...
to add custom features to the system immediately, as and when required, without having to wait for the R&D department to deliver. These customized features are not added on as scripts to be ...
这里,`User.class`是我们的实体类,`Criteria`对象就是我们进行查询的基础。 #### 三、基本查询 1. **等值查询**:通过`add()`方法和`Expression.eq()`表达式实现等值查询。 ```java criteria.add(Expression....
private void Bind_List2... newdtb.Columns.Add("update_user", typeof(string)); newdtb.Columns.Add("update_date", typeof(string)); newdtb.Columns["Id"].AutoIncrement = true; for (int i = 1; i ; i++) {
Laravel 5.2 初学者指南 Laraboot: Laravel 5 For Beginners Bill Keck ...This version was published on 2016-04-04 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing ...
users.add(user); UserM user2 = new UserM("王大姐", 30); users.add(user2); UserM user3 = new UserM("王小二", 25); users.add(user3); int count = service.saveDatas(users); System.out....
只要把这个userControl添加到你的website里就可以用了。示例代码: chart1.dataSource = 此处为一个Table。 chart1.Title = "IHC Notebook Products /VPM PSG Team Level of Availablity %(LOS)"; chart1.Caption_...
Users.Add(user1); Users.Add(user2); Users.Add(user3); Users.Add(user4); Users.Add(user5); return Users; } ``` 四、C++2005调用C#Webservice接口返回值为List的实现 在C++2005中,使用CService对象调用...
using (RegistryKey subKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Applets\Paint\Recent File List")) { foreach (string mru in subKey.GetValueNames()) { ...
JSON 与 JavaBean、Map 和 List 之间的转换问题 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。在 Java 开发中,经常需要将 JSON 数据与 JavaBean、Map ...
userList.add(new User("Spike", 20)); // 自定义比较器,根据age属性排序 Collections.sort(userList, new Comparator<User>() { @Override public int compare(User u1, User u2) { return Integer.compare...
Clients.Client(user.ContextId).addMessage("电脑说:" + e.参一+ e.参二, user.ContextId); } } else if (e.类型 == 目的事件类型.学习 || e.类型 == 目的事件类型.认知) { Clients.Client(user.ContextId)....
user.setName(resultSet.getString("name")); user.setAge(resultSet.getInt("age")); userList.add(user); } ``` 4. 将List<User>转换为JSON字符串: 使用Jackson的ObjectMapper进行转换: ```java ...
Criteria criteria = session.createCriteria(User.class); criteria.add(Restrictions.eq("username", "admin")); List<User> users = criteria.list(); ``` - **应用场景**:当需要根据一个确定的值查询记录时...
user.getTels().add("1234444556677"); user.getTels().add("6893493458585"); map.put("user", user); JSONObject json = new JSONObject(map); System.out.println(json.toString()); } ``` 在上面的...
user.setAge(Math.round(json.getAsJsonObject().get("age").getAsFloat())); return user; } @Override public JsonElement serialize(User src, Type typeOfSrc, JsonSerializationContext context) { ...
2. **EULA.txt**:这是End User License Agreement(最终用户许可协议)的文本文件,详细列出了软件的使用条款和限制,用户在使用该软件前必须同意这些条款。 3. **Demos**:这个目录可能包含了多个示例项目,展示...