明明查的全表的信息,为什么只重复显示一行

求知若渴CC 2014-09-22 07:56:05
数据库里有三行不一样信息,查出来是三行但是每行都是重复的,我就纳闷了,代码查了几遍也没看出问题,自学真是伤不起啊
重复的错误内容!

struts.xml
<action name="findalluser" class="com.lkx.action.FindAllUsersAction" method="findAllUsers">
<result name="success">/allusers.jsp</result>
<result name="input">/admin/allusers.jsp</result>
</action>

public class FindAllUsersAction extends ActionSupport {
private Users user = new Users();

public Users getModel() {
return user;
}
private String type;
public String findAllUsers()throws Exception{
UsersDAO dao = new UsersDAO();
List list = dao.findAllUses(user);
ActionContext.getContext().put("list", list);
if("admin".equals(type)){
return INPUT; //管理员查询
}else{ return SUCCESS ;}//用户查询
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

DAO
//查看所有用户
public List findAllUses(Users users) {
List list = new ArrayList();
con = DatabaseDAO.getConnection();
try{
pt = con.prepareStatement("SELECT * FROM users");
rs = pt.executeQuery();
while(rs.next()){
users.setId(rs.getInt(1));
users.setUsername(rs.getString(2));
users.setPassword(rs.getString(3));
users.setName(rs.getString(4));
users.setNic(rs.getString(5));
users.setEmail(rs.getString(6));
users.setPhone(rs.getString(7));
users.setSelfshow(rs.getString(8));
list.add(users);
}
}catch (Exception e) {
// TODO: handle exception
}
return list;
}

jsp页面迭代
<s:iterator value="list">

<tr>
<td>
<s:property value="username" />
</td>
<td>
<s:property value="nic" />
</td>
<td>
<s:property value="name" />
</td>
<td>
<s:property value="email" />
</td>
<td>
<s:property value="phone" />
</td>
<td>
<s:property value="selfshow" />
</td>
</tr>
</s:iterator>

...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
求知若渴CC 2014-09-22
  • 打赏
  • 举报
回复
引用 6 楼 XUECHANG1 的回复:
[quote=引用 5 楼 u010449017 的回复:] [quote=引用 4 楼 XUECHANG1 的回复:]

public List findAllUses() {
        List list = new ArrayList();
        con = DatabaseDAO.getConnection();
        try{
            pt = con.prepareStatement("SELECT * FROM users");
            rs = pt.executeQuery();
            while(rs.next()){
                User users=new User();
                users.setId(rs.getInt(1));  
                users.setUsername(rs.getString(2));
                users.setPassword(rs.getString(3));
                users.setName(rs.getString(4));
                users.setNic(rs.getString(5));
                users.setEmail(rs.getString(6));
                users.setPhone(rs.getString(7));
                users.setSelfshow(rs.getString(8));
                list.add(users);
            }
        }catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }
我在Action里用了模型驱动了啊,并且把user对象传给DAO了,就不用new了吧[/quote] 可是你这样做只有一个User对象,都被覆盖了,值都是一样的[/quote] 好的,明白了搞定,谢谢
求个名字起 2014-09-22
  • 打赏
  • 举报
回复
引用 5 楼 u010449017 的回复:
[quote=引用 4 楼 XUECHANG1 的回复:]

public List findAllUses() {
        List list = new ArrayList();
        con = DatabaseDAO.getConnection();
        try{
            pt = con.prepareStatement("SELECT * FROM users");
            rs = pt.executeQuery();
            while(rs.next()){
                User users=new User();
                users.setId(rs.getInt(1));  
                users.setUsername(rs.getString(2));
                users.setPassword(rs.getString(3));
                users.setName(rs.getString(4));
                users.setNic(rs.getString(5));
                users.setEmail(rs.getString(6));
                users.setPhone(rs.getString(7));
                users.setSelfshow(rs.getString(8));
                list.add(users);
            }
        }catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }
我在Action里用了模型驱动了啊,并且把user对象传给DAO了,就不用new了吧[/quote] 可是你这样做只有一个User对象,都被覆盖了,值都是一样的
求知若渴CC 2014-09-22
  • 打赏
  • 举报
回复
引用 4 楼 XUECHANG1 的回复:

public List findAllUses() {
        List list = new ArrayList();
        con = DatabaseDAO.getConnection();
        try{
            pt = con.prepareStatement("SELECT * FROM users");
            rs = pt.executeQuery();
            while(rs.next()){
                User users=new User();
                users.setId(rs.getInt(1));  
                users.setUsername(rs.getString(2));
                users.setPassword(rs.getString(3));
                users.setName(rs.getString(4));
                users.setNic(rs.getString(5));
                users.setEmail(rs.getString(6));
                users.setPhone(rs.getString(7));
                users.setSelfshow(rs.getString(8));
                list.add(users);
            }
        }catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }
我在Action里用了模型驱动了啊,并且把user对象传给DAO了,就不用new了吧
求个名字起 2014-09-22
  • 打赏
  • 举报
回复

public List findAllUses() {
        List list = new ArrayList();
        con = DatabaseDAO.getConnection();
        try{
            pt = con.prepareStatement("SELECT * FROM users");
            rs = pt.executeQuery();
            while(rs.next()){
                User users=new User();
                users.setId(rs.getInt(1));  
                users.setUsername(rs.getString(2));
                users.setPassword(rs.getString(3));
                users.setName(rs.getString(4));
                users.setNic(rs.getString(5));
                users.setEmail(rs.getString(6));
                users.setPhone(rs.getString(7));
                users.setSelfshow(rs.getString(8));
                list.add(users);
            }
        }catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }
求知若渴CC 2014-09-22
  • 打赏
  • 举报
回复
引用 2 楼 yankaiwuzhengbo 的回复:
list中循环插入的为同一个user对象啊,重复覆盖
哦,我好像明白了,user.setXX()重复插入吗?已经在循环了该怎么解决呢
yuhouqingchen_2648 2014-09-22
  • 打赏
  • 举报
回复
list中循环插入的为同一个user对象啊,重复覆盖
yuhouqingchen_2648 2014-09-22
  • 打赏
  • 举报
回复
全部覆盖,肯定只有最后一条啊。。。。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧