fventurajr 19 de dez. de 2019
Esta classe Usuario só tem nome como atributo? Você poderia tentar
apenas por experiência usar um construtor informando o nome assim:
usuarios.add(new Usuario(rs.getString("nome"));
scheleder 19 de dez. de 2019
Não.
Os atributos são nome, matricula, senha e tipo.
Já tentei com os outros atributos e nada.
tem algo errado no ResultSet, mas não achei.
PedreiroDeSoftware 19 de dez. de 2019
Qual o método que imprime os usuários?
Use o debug, marque a linha que adiciona na lista.
Navegue nos índices e verifique os nomes.
scheleder 19 de dez. de 2019
O objetivo e ler o nome dos usuarios e popular uma jcombobox.
Nem acredito que to me batendo com isso.
scheleder 19 de dez. de 2019
Esta é a parte que popula o jcombobox:
private void buscaUsers () {
UsuarioDAO dao = new UsuarioDAO ();
List < Usuario > users = dao . findAll ();
DefaultComboBoxModel cbmodel = new DefaultComboBoxModel ( users . toArray ());
cbUsers . setModel ( cbmodel );
}
PedreiroDeSoftware 19 de dez. de 2019 1 like
Você conferiu se há 57 registros diferentes no banco de dados???
while ( rs . next ()) {
Usuario usuario = new Usuario ();
usuario . setNome ( rs . getString ( "nome" ));
System . out . println ( rs . getString ( "nome" )); //olhar o que está sendo impresso
//FALTA ALGO usuarios.add(usuario);
}
scheleder 20 de dez. de 2019
Opa!
Agora deu uma luz.
Está imprimindo os nomes corretamente, mas na lista todos os nomes são iguais ao último.
scheleder 20 de dez. de 2019
Resolvido.
Mudei o tipo da lista pra String.
public List findAll () {
String SQL = “ SELECT nome FROM usuario ” ;
PreparedStatement stmt = null ;
ResultSet rs = null ;
List < String > usuarios = new ArrayList <> ();
try {
stmt = con . prepareStatement ( SQL );
rs = stmt . executeQuery ();
while ( rs . next ()) {
Usuario usuario = new Usuario ();
usuario . setNome ( rs . getString ( "nome" ));
//System.out.println(rs.getString("nome"));
usuarios . add ( rs . getString ( "nome" ));
// usuarios.add(usuario);
}
} catch ( SQLException ex ) {
System . err . println ( "Erro: " + ex );
} finally {
ConnectionFactory . closeConnection ( con , stmt , rs );
}
System . out . println ( usuarios );
return usuarios ;
}
private void buscaUsers () {
UsuarioDAO dao = new UsuarioDAO ();
List users = dao . findAll ();
DefaultComboBoxModel cbmodel = new DefaultComboBoxModel ( users . toArray ());
cbUsers . setModel ( cbmodel );
}
FacaNaCaveira 20 de dez. de 2019
Falai @scheleder Bom dia
Ja sei que seu problema ja esta resolvido mas teria como postar o codigo da sua classe Usuario?
Abraços
Max
scheleder 20 de dez. de 2019
public class Usuario {
//
public static String matricula ;
public static String nome ;
public static String tipo ;
public static String senha ;
static String senhaDigitada ;
static String matriculaDigitada ;
static String dado ;
static String campo ;
//
public Usuario () {
}
public Usuario ( String matricula , String nome , String tipo , String senha ) {
Usuario . matricula = matricula ;
Usuario . nome = nome ;
Usuario . tipo = tipo ;
Usuario . senha = senha ;
}
//
public String getSenhaDigitada () {
return senhaDigitada ;
}
public void setSenhaDigitada ( String senhaDigitada ) {
Usuario . senhaDigitada = senhaDigitada ;
}
public String getMatriculaDigitada () {
return matriculaDigitada ;
}
public void setMatriculaDigitada ( String matriculaDigitada ) {
Usuario . matriculaDigitada = matriculaDigitada ;
}
public String getDado () {
return dado ;
}
public void setDado ( String dado ) {
Usuario . dado = dado ;
}
public String getCampo () {
return campo ;
}
public void setCampo ( String campo ) {
Usuario . campo = campo ;
}
public String getMatricula () {
return matricula ;
}
public void setMatricula ( String matricula ) {
Usuario . matricula = matricula ;
}
public String getNome () {
return nome ;
}
public void setNome ( String nome ) {
Usuario . nome = nome ;
}
public String getTipo () {
return tipo ;
}
public void setTipo ( String tipo ) {
Usuario . tipo = tipo ;
}
public String getSenha () {
return senha ;
}
public void setSenha ( String senha ) {
Usuario . senha = senha ;
}
@Override
public String toString () {
return this . nome ;
}
//
}
PedreiroDeSoftware 20 de dez. de 2019 1 like
public static String matricula ;
public static String nome ;
public static String tipo ;
public static String senha
Remova o static pois ele é para atributos pertencentes à classe, assim os atributos serão do objeto.
Por isso imprimia sempre o último nome encontrado na busca.
FacaNaCaveira 23 de dez. de 2019 1 like
Sabia que tinha algo de muito estranho nessa classe Usuario