读书人

数据读取有关问题

发布时间: 2011-11-29 22:04:11 作者: rapoo

数据读取问题
数据源配置
<data-sources >
<data-source>
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="" />
<set-property property="driverClass" value="com.mysql.jdbc.Driver" />
<set-property property="minCount" value="1" />
<set-property property="loginTimeout" value="1000" />
<set-property property="password" value="******" />
<set-property property="user" value="root" />
<set-property property="maxCount" value="10" />
<set-property property="url" value="jdbc:mysql://localhost:3306/struts" />
</data-source>

</data-sources>
Action代码:

//取出数据源
DataSource ds = getDataSource(request);
//取出数据库连接
Connection con = ds.getConnection();
//查询留言人
Post p=new Post();
List<Post> list = new ArrayList<Post>();

Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT id,name FROM post ORDER BY id");
while (rs.next()) {
//读出 name 保存到 ArrayList 里面
p.setId(rs.getInt("id"));
p.setName(rs.getString("name"));
list.add(p);
}
System.out.println(list);
Iterator iter=list.iterator();

while(iter.hasNext())
{
p=(Post)iter.next();
System.out.println(p.getId()+"\t"+p.getName());
}
rs.close();
st.close();
con.close();//关闭连接

//保存留言人到request,以便转到jsp页面显示
request.setAttribute("list", list);
return mapping.findForward("success");

}
数据库理由这样四条记录
1zxcxz
2zxc
3www
4adasdd
为什么读出来的总是:
4adasdd
4adasdd
4adasdd
4adasdd

[解决办法]
while (rs.next()) {
//读出 name 保存到 ArrayList 里面
Post p=new Post();//必须重新分配,否则覆盖原有的对象
p.setId(rs.getInt("id"));

读书人网 >J2EE开发

热点推荐