SINVAL
Julho 28, 2005, 2:54pm
#1
Pessoal,
Estou quando executo a consulta de uma tabela e pego as informções no resulteset eles estão legal, quando incluo em uma arraylist so aparece uma coluna, neste caso a primeira, não deveria ao adicionar, neste caso cada funcionário, ter todas as colunas em cada posição do array ? O que esta errado no me código ?
[code] public Vector selecionaTodasDigitais(DigitalFuncionario digitalFuncionario) throws SQLException, ClassNotFoundException , ErroPadraoException {
Vector listaDigital = new Vector();
try {
conexao = CriaConexao.abreConexao();
stmt = this.conexao.prepareStatement(SQL_SELECT_DIGITAL);
rs = stmt.executeQuery();
if (rs.next()) {
digitalFuncionario.setIdentificadorDigital(rs.getInt("id_digital_seq"));
digitalFuncionario.setMatriculaFuncionario(rs.getInt("cd_matricula"));
digitalFuncionario.setQtByteDigital(rs.getInt("qt_byte_digital"));
digitalFuncionario.setDescricaoDigital(rs.getString("ds_digital"));
digitalFuncionario.setNomeAlteracaoRegistro(rs.getString("nm_alt"));
digitalFuncionario.setNomeInclusaoRegistro(rs.getString("nm_inc"));
digitalFuncionario.setDataAlteracao(rs.getString("dt_alt"));
digitalFuncionario.setDataInclusao(rs.getString("dt_inc"));
listaDigital.add(digitalFuncionario);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
stmt.close();
return listaDigital;
}[/code]
foia
Julho 28, 2005, 3:02pm
#2
if (rs.next()) {
digitalFuncionario = new DigitalFuncionario();
digitalFuncionario.setIdentificadorDigital(rs.getInt("id_digital_seq"));
falta um:
digitalFuncionario = new DigitalFuncionario(); :!: :!:
use ArrayList !
SINVAL,
você esqueceu de mandar “percorrer” seu ResultSet.
Você deve usar uma condicional WHILE pra isso.
while (rs.next()) {
foia
Julho 28, 2005, 3:05pm
#4
[quote=finotti]SINVAL,
você esqueceu de mandar “percorrer” seu ResultSet.
Você deve usar uma condicional WHILE pra isso.
while (rs.next()) {
[/quote]
é mesmo… faltou um while também ! :mrgreen: :mrgreen:
SINVAL
Julho 28, 2005, 3:05pm
#5
Estou criando o funcionarioDigital em outra class e trago o objeto dele como parametro no método;
[quote]public Vector selecionaTodasDigitais(DigitalFuncionario digitalFuncionario) [code]
Não posso fazer desta forma ?
foia
Julho 28, 2005, 3:12pm
#6
[quote=SINVAL]Estou criando o funcionarioDigital em outra class e trago o objeto dele como parametro no método;
public Vector selecionaTodasDigitais(DigitalFuncionario digitalFuncionario) [code]
Não posso fazer desta forma ?[/quote]
NOPE ! senão você vai ter sempre um elemento (referência) na lista, que seria o parâmetro que você passou.
SINVAL
Julho 28, 2005, 3:14pm
#7
Bem, mas como esta ele não iria ler pelo menos o 1º registro ? Pois visualizando pelo debug sim, Acredito que o problema não seja este e sim algo em minha criação de array(vector), vc não acha ?
foia
Julho 28, 2005, 3:17pm
#8
ele lê o primeiro registro sim (rs.next). só que a lista só vai ter um objeto pq:
1 - não faz o while;
2 - não cria um novo objeto (no loop).
certo ?!
SINVAL
Julho 28, 2005, 3:18pm
#9
Foia,
Entendi sobre ter somente um objeto…beleza, mas ainda vou ter o problema do array, certo ?
foia
Julho 28, 2005, 3:20pm
#10
é. qdo vc faz if(rs.next) verifica se ele tem “next” no resultset. tem que ser while, ou seja, enquanto tiver registros no resultset.
SINVAL
Julho 28, 2005, 3:23pm
#11
Beleza Foia, muiiiito obrigado, funcionou diretinho.