首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

实体类插入list有关问题

2012-12-17 
实体类插入list问题public List bankSelect() {List list new ArrayList()bank a new bank()try {Co

实体类插入list问题
  public List bankSelect() {
    List list = new ArrayList();
   
    bank a = new bank();
    
    try {
    ConnBean c = new ConnBean();
       dbConn = c.conn();
       stmt = dbConn.createStatement();
    String sql = "select * from tb_client_bank ";
      ResultSet rs = stmt.executeQuery(sql);
      while (rs.next()) {
    a.setid(Integer.parseInt(rs.getString(1)));
        a.set_bank_name(rs.getString(2));
    a.set_bank_bz(rs.getString(3));  
    
    list.add(a);
      }
      
    }
    catch (SQLException e) {
    e.printStackTrace();
    }
    
    return list;
  }


bank是我的实体类。上层servlet调用这个方法的时候会把list加到request对象里以便页面输出
假如库里有4条数据吧。我这个方法现在的结果是吧最后一条数据输出了4遍。。而不是每条数据遍历输出。
高手指点下怎么遍历呢???
还是说用实体类的话就没法达到这个目的?
大虾指点啊~~~~~~~~~
[最优解释]

public List bankSelect() {
  List list = new ArrayList();
    
  
    
  try {
  ConnBean c = new ConnBean();
  dbConn = c.conn();
  stmt = dbConn.createStatement();
  String sql = "select * from tb_client_bank ";
  ResultSet rs = stmt.executeQuery(sql);
  while (rs.next()) {
  bank a = new bank();
  a.setid(Integer.parseInt(rs.getString(1)));
  a.set_bank_name(rs.getString(2));
  a.set_bank_bz(rs.getString(3));   
  
  list.add(a);
  }
    
  }
  catch (SQLException e) {
  e.printStackTrace();
  }
    
  return list;
  }


这样就O了, 你那样只有a一个对象,当然就出现你那个结果了
[其他解释]
说错了,就只有一个实体。java中只要是自己定义的对象都需要new一个的。才能是新的实体。
[其他解释]
自己顶下~~~~~~~救命啊~~~~~~~~~~~~~~~~~~~~~~~~~~~
[其他解释]
引用:
Java code
public List bankSelect() {
  List list = new ArrayList();
    
  
    
  try {
  ConnBean c = new ConnBean();
  dbConn = c.conn();
  stmt = dbConn.createStatement();
  String sql =……



太帅了~正解~~~
不过想问问为什么。我觉得在外边定义,每次循环回来的时候都会用新值覆盖原来的,为啥每次都要从新定义这个实体对象呢?能帮解释下吗~~~


[其他解释]

引用:
引用:
Java code
public List bankSelect() {
List list = new ArrayList();



try {
ConnBean c = new ConnBean();
dbConn = c.conn();
stmt = dbConn.createStatement();
String ……


通俗点说吧 相当于你给一个对象赋值了四次 你说这个对象现在的值是什么(当然是最后一次的值了)
list.add()就加了四次你最后赋的那个值。而你每次new一个对象又不一样了,这时有四个对象,每个对象都有自己的值。道理就是这么简单!
[其他解释]
引用:
引用:
引用:
Java code
public List bankSelect() {
List list = new ArrayList();



try {
ConnBean c = new ConnBean();
dbConn = c.conn();
stmt = dbConn.c……


那实体类这种东西是只能存1条记录还是能存多条记录?
[其他解释]
我第一次做毕业设计也是这样。a引用的是同一个对象。而list里面是可以存相同的对象的。如果用其他的结合如vector,可能就会提示一下你,不至于出错。。
[其他解释]
不是能存几条的问题。是集合存的同一个对象的问题。
[其他解释]
引用:
不是能存几条的问题。是集合存的同一个对象的问题。


有点晕。。
第一次把第一条数据存到实体类。完了放到list里
第二次吧用新的rs(第二条)数据覆盖这个实体对象的内容,放到list里
……
我的这个理解对吗?
[其他解释]
是覆盖了这个实体的内容。但a是同一个实体啊。4个实体引用的同一个,也就是最后一个实体。
[其他解释]
引用:
Java code
public List bankSelect() {
  List list = new ArrayList();
    
  
    
  try {
  ConnBean c = new ConnBean();
  dbConn = c.conn();
  stmt = dbConn.createStatement();
  String sql =……


正解
[其他解释]
引用:
说错了,就只有一个实体。java中只要是自己定义的对象都需要new一个的。才能是新的实体。


对啊。就是一个实体。
那我就定义一个a的话第二次set完了放到list里这个过程是怎么个情况。,
它应该就吧第二条加进去啊。。怎么还把第一条覆盖了
[其他解释]
关注一下,不知道

热点排行
Bad Request.