Duvida em Retirar dado em um BD e coloca numa Jlist [resolvido]

4 respostas
S

galera tenho o seguinte codigo

public List<Artigo> listar() { String sql = "SELECT titulo from Artigo"; // vetor dinamico para guardar todos os objetos do banco List<Artigo> list = new ArrayList<Artigo>(); try { Connection con = ConnectDB.createConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * from Artigo"); while(rs.next()) { list.add(new Artigo ( rs.getString("titulo") ) ); System.out.println(list); } rs.close(); stmt.close(); con.close(); return list; }catch(SQLException sqlEx) { System.out.println("Peeeemmmm"); System.out.println(sqlEx); return null; }catch(Exception ex) { return null; } }

quando chamo esse metodo ele add na jlist algo do tipo [bean.Artigo@39478a43] i não o dado que esta no BD.
alguém pode mi ajudar?

4 Respostas

B

Acho que o problema do teu nesse pedaço:

while(rs.next()) {
list.add(new Artigo (
rs.getString("titulo")
)
);
System.out.println(list);
}

um exemplo de como eu fiz da última vez, só que eu usei arraylist. Sou novato, espero ter ajudado.

while(rs.next()){
                    Livro temp=new Livro();
                    temp.setIdLivro(rs.getInt("idLivro"));
                    temp.setTitulo(rs.getString("titulo"));
                    temp.setSubtitulo(rs.getString("subtitulo"));
                    temp.setEdicao(rs.getInt("edicao"));
                    temp.setAno(rs.getInt("ano"));
                    temp.setAutor(rs.getString("autor"));
                    temp.setAno(rs.getInt("ano"));
                    temp.setIdEditora(rs.getInt("idEditora"));
                    temp.setIdCategoria(rs.getInt("idCategoriaLivro"));
                    temp.setNomeEditora(rs.getString("editora"));
                    temp.setNomeCategoria(rs.getString("categoria"));

                    array_livros.add(temp);
                }
S

fiz o que voce sugeriu

while(rs.next()) { //list.add( new Artigo( Artigo temp = new Artigo(); temp.setCodigo(rs.getInt("Cod_art")); temp.setAutor(rs.getString("Autor")); temp.setTitulo(rs.getString("titulo")); //System.out.println(rs.getInt("Cod_art")); //System.out.println(rs.getString("Autor")); //System.out.println(rs.getString("titulo")); list.add(temp); System.out.println(temp.getAutor()); System.out.println(list); }

mais continua retornando a mesma coisa!
soh pode ter algo errado no list.add
mais num sei u q eh, estou a tarde inteira parado nesse tilt do kralho!
argh!!!

A
while(rs.next()) {  
list.add(new Artigo (  
rs.getString("titulo")  
)

aí em cima você está adicionando uma referência na tua lista e não o título cara. Toda vez que você fizer new alguma coisa, quer dizer que você está criando uma referência à aquele objeto.
Tenta tirar o new artigo() e deixa somente o rs.getString(“titulo”)

while(rs.next()) {  
list.add(rs.getString("titulo"));
S

pô valeu andre!
ti devo uma

List<Artigo> list = new ArrayList<Artigo>();

virou

List list = new ArrayList();

i isso

while(rs.next()) { list.add(new Artigo ( rs.getString("titulo") ) );
virou

while(rs.next()) { list.add(rs.getString("titulo"));

vlw, agora soh falta 99% do meu trabalho :smiley:

Criado 14 de julho de 2010
Ultima resposta 14 de jul. de 2010
Respostas 4
Participantes 3