Array de Objetos

Estou com uma pequena dúvida quanto a array de objetos. Por exemplo eu tenho JavaBeans para armazenar dados que vem do meu database. Quando executo um select que me retorna vários registros armazeno o resultado em um array de JavaBeans.

MyObjeto [] objs = pStatement.executeQuery(sql);

Esse é a forma mais utilizada ou existem outras formas?

Ao inves de array, experimente usar a framework de collections que já vem no j2sdk.

Veja um exemplo abaixo

public ArrayList getUserList() throws SQLException {
	Connection conn = null;
	PreparedStatement stmt = null;
	ResultSet rs = null;
	LinkedList users  = new LinkedList();
	try {
		conn = getConnection();
		stmt = conn.prepareStatement("select * from usuario");
		rs = stmt.executeQuery();
		while (rs.next()) {
			UserData user = new UserData();
			user.setIdUsuario(rs.getInt("id_usuario"));
			user.setNome(rs.getString("nome"));
			user.setLogin(rs.getString("login"));
			user.setSenha(rs.getString("senha"));
			user.setSexo(rs.getString("sexo"));
			user.setAtivo(rs.getBoolean("ativo"));
			user.setFaixaIdade(rs.getInt("faixa_idade"));
			users.add(user);
		}
	}
	catch (SQLException e) {
		throw e;
	}
	finally {
		closeConnection(conn, stmt, rs);
	}
	return users;
}

[]s, Welington B. Souza

No código eu percebí que a instrução

UserData user = new UserData()

fica dentro do laço while. Tentei colocar essa instrução antes do laço e dentro do laço eu simplesmente iria substituindo o valor do meu objeto

UserData user = new UserData(); while (rs.next()) { user.setIdUsuario(rs.getInt("id_usuario")); user.setNome(rs.getString("nome")); user.setLogin(rs.getString("login")); user.setSenha(rs.getString("senha")); user.setSexo(rs.getString("sexo")); user.setAtivo(rs.getBoolean("ativo")); user.setFaixaIdade(rs.getInt("faixa_idade")); users.add(user); }
Mas fazendo isso eu percebí que os valores não são atualizados, tendo uma lista de registros repetidos (sempre o último que retornou do select). Alguém sabe me dizer por quê?

por que tu só criou um userdata e foi alterando os valores dele,
pode até utilizar a mesma variavel, mas o new tem que estar dentro do loop

blz… caiu a ficha…