Método Retornando uma Lista de Objetos do banco JDBC

6 respostas
kvnallen

Pessoal estou criando um método que retorna uma lista de objetos no banco, mas ele está dando nullpointer sempre, já tentei várias coisas e não consegui, o que estou fazendo de errado?

public List<Noticia> listarTodos() {

		String sql = "SELECT titulo,conteudo from noticia";
		List<Noticia> listAll = null;
		Noticia n;
		
		try {

			Connection con = Conexao.getConnection();
			Statement stm = con.createStatement();

			ResultSet rs = stm.executeQuery(sql);
			while (rs.next()) {

				n = new Noticia();
				
				n.setTitulo(rs.getString("titulo"));
				n.setConteudo(rs.getString("conteudo"));
				
				listAll.add(n);
				System.out.println("ADICIONOU 1");
				
			}
			System.out.println("Adicionou Todos!");
			
			con.close();
			rs.close();
			stm.close();
			
		} catch (Exception e) {
			System.out.println("Listando... "+e.getMessage());
		}

		return listAll;

	}

6 Respostas

mateus.cordeiro

Na linha 04 tente isso:

List listAll = new ArrayList;

mateus.cordeiro

Na linha 04 tente isso:

List listAll = new ArrayList();

ops. faltou o “()”!

sephil

Olá,

O problema é que ao criar a lista você faz:

List<Noticia> listAll = null;

E depois tenta adicionar um elemento a ela:

listAll.add(n);

Sem antes instancia-la.

Altere a criação da sua lista para:

List<Noticia> listAll = new ArrayList<Noticia>();
kvnallen

Funcionou LOL! muito obrigado!

Poderia me explicar porque se declara List listAll = new ArrayList(); e não List listAll = new List(); ?
Outra dúvida
Qual a diferença entre awt.List e java.util.List?

sephil

A classe List do pacote util, é uma Interface, por isso não conseguimos instancia-la.
Portanto utilizamos a classe concreta ArrayList, que implementa List.
Além da ArrayList, dependendo da sua necessidade você também poderia utilizar as classes AbstractList, AbstractSequentialList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack e Vector. Todas elas implementam List.

A util.List, é uma interface utilizada para se trabalhar com Coleções (Collections) de objetos, e a awt.List é uma classe concreta, que representa um componente visual do antigo pacote AWT, é uma caixa com uma lista de itens selecionáveis.

viudes

Olá

Porque o List é uma interface, interfaces é apenas uma especificação do que você tem que implementar, como se fosse um contrato.

Então a Classe ArrayList implementa a interface List.

List do java.util é uma interface a outra awt.List é concreta

Mais informações sobre interfaces olhe estes tópico:

Criado 23 de abril de 2012
Ultima resposta 23 de abr. de 2012
Respostas 6
Participantes 4