第一次发贴,大家好,问个list的问题
我的数据库只有一个字段username 里面的值为1 2 3 4 5 6 7 8
但是为什么我用list保存 输出的却是 8 8 8 8 8 8 8 8 呢 求解 =。=
package dao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class Cha{
public List cha()
{
List<Userbean> list=new ArrayList<Userbean>();
Connection conn=null;
Statement stmt=null;
String sqlstr;
ResultSet rs=null;
DB db=new DB();
Userbean user=new Userbean();
conn=db.getConn();
try{
stmt = conn.createStatement();
sqlstr = "select * from test";
rs=stmt.executeQuery(sqlstr);
while(rs.next())
{
user.setUsername(rs.getString(1));
list.add(user);
}
}
catch(
SQLException e2)
{
System.out.println("数据库存在异常!查操作时出现错误");
System.out.println(e2.toString());
}
finally
{
try
{
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn!= null) conn.close();
}
catch(SQLException e)
{
System.out.println("数据库存在异常!查操作时出现错误");
}
}
return list;
}
}
------解决方案-------------------- while(rs.next())
{
UserBean user = new UserBean();
user.setUsername(rs.getString(1));
list.add(user);
}
你不new的话,user都是指向一个实例。
------解决方案--------------------Java code
Userbean user=new Userbean();
conn=db.getConn();
try{
stmt = conn.createStatement();
sqlstr = "select * from test";
rs=stmt.executeQuery(sqlstr);
while(rs.next())
{
user.setUsername(rs.getString(1));
list.add(user);
}
------解决方案--------------------
楼上说的很对 把Userbean user=new Userbean();
while(rs.next())
{
user.setUsername(rs.getString(1));
list.add(user);
}
放在while语句中 自己好好理解下吧 看下list的API