Problema com lista util.list

8 respostas
bruno_savi

Pessoal estou tendo um probleminha com lista criei esta lista

public List<RegionalBean> getLista() {

		try {
			PreparedStatement stmt = this.connection
					.prepareStatement("SELECT * FROM regional");
			ResultSet rs = stmt.executeQuery();
			List<RegionalBean> list = new ArrayList<RegionalBean>();
			while (rs.next()) {
				RegionalBean regional = new RegionalBean();
				regional.setRegionalCodigo(rs.getString("regional_codigo"));
				regional.setRegionalNome(rs.getString("regional_nome"));
				regional.setRegionalEndereco(rs.getString("regional_endereco"));
				regional.setRegionalBairro(rs.getString("regional_bairro"));
				regional.setRegionalCidade(rs.getString("regional_cidade"));
				regional.setRegionalEstado(rs.getString("regional_estado"));
				regional.setRegionalCEP(rs.getString("regional_cep"));
				regional.setRegionalTelefoneDDD1(rs
						.getInt("regional_telefone_ddd1"));
				regional.setRegionalTelefoneNumero1(rs
						.getString("regional_telefone_numero1"));
				regional.setRegionalTelefoneDDD2(rs
						.getInt("regional_telefone_ddd2"));
				regional.setRegionalTelefoneNumero2(rs
						.getString("regional_telefone_numero2"));
				regional.setRegionalFAXDDD(rs.getInt("regional_fax_ddd"));
				regional.setRegionalFAXNumero(rs
						.getString("regional_fax_numero"));

				regional.setRegionalResponsavel(rs
						.getString("regional_responsavel"));
				regional.setRegionalResponsavelTelefoneDDD(rs
						.getInt("regional_responsavel_telefone_ddd"));
				regional.setRegionalResponsavelTelefone(rs
						.getString("regional_responsavel_telefone"));
				regional.setRegionalResponsavelCelularDDD(rs
						.getInt("regional_responsavel_celular_ddd"));
				regional.setRegionalResponsavelCelular(rs
						.getString("regional_responsavel_celular"));
				regional.setRegionalResponsavelEmail(rs
						.getString("regional_responsavel_email"));
				regional.setRegionalResponsavelObservacao(rs
						.getString("regional_responsavel_observacao"));
				regional.setRegionalStatus(rs.getInt("regional_status"));
				regional.setRegionalID(rs.getInt("regional_id"));

				list.add(regional);
				
			}
			rs.close();
			stmt.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return list;

	}

só que ela retorna null alguem sabe o pq?

obs: no banco de dados existem dados...
os campos tão certo pois ja verifiquei...

8 Respostas

thiago.correa

Pode estar ocorrendo uma exceção, (banco não disponível, usuário/senha errados, não existe um determinado campo na tabela), isso tudo é passível de erro. Dê uma olhada nos logs da tua aplicação e posta aí o erro!!!

bruno_savi

ele não da erro nenhum apenas retorna uma lista vazia qdo chamo ela…

thiago.correa

Cara então dá uma debugada aí! Coloca um break point no início do while e vê se ele executa.

Coloque para fora do try o código da linha 7.

nbluis

Cara, tem certeza que é isso ai o seu codigo??

pq esse dai não deve nem compilar…

A lista está declarada dentro do bloco try e voce está retornando ela fora desse bloco…

Sami_Koivu

Olá,

O objeto list que você preenche com os valores está definido na linha 7. Visto que essa definição está dentro de um bloco de código e seu return está fora do tal bloco logo a variavel list não está visível para o comando return. Quer dizer que caso esse código compila, seu classe deve também ter um campo list que nunca fica initializado nem preenchido.

Tente definir seu variavel list no mesmo escopo que o comando de retorno, ou seja, logo no começo do método.

[]s,
Sami

bruno_savi
package br.com.sgdi.dao.regional;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.sgdi.bd.ConectaDb;
import br.com.sgdi.bean.regional.RegionalBean;

public class RegionalDAO {

	// abrindo a conexão com o banco de dados
	private Connection connection;

	private List<RegionalBean> list;

	private RegionalBean regional;

	// construtor que recebe a conexao
	public RegionalDAO(Connection con) {

		this.connection = con;

	}

	public RegionalDAO() {
		try {
			this.connection = ConectaDb.getConnection();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void adiciona(RegionalBean regional) {

		// inserindo no banco
		PreparedStatement stmt = null;
		try {
			stmt = this.connection
					.prepareStatement("INSERT INTO regional(regional_codigo, regional_nome, "
							+ "regional_endereco,regional_bairro, regional_cidade, regional_estado, "
							+ "regional_cep, regional_telefone_ddd1, regional_telefone_numero1, "
							+ "regional_telefone_ddd2,regional_telefone_numero2, regional_fax_ddd, "
							+ "regional_fax_numero,regional_responsavel, regional_responsavel_telefone_ddd,"
							+ "regional_responsavel_telefone, regional_responsavel_celular_ddd, "
							+ "regional_responsavel_celular, regional_responsavel_email, "
							+ "regional_responsavel_observacao, regional_status) VALUES (?, ?, ?, ?, ?, ?, "
							+ "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

			// setando os valores
			// stmt.setInt(1, regional.getRegionalID());
			stmt.setString(1, regional.getRegionalCodigo());
			stmt.setString(2, regional.getRegionalNome());
			stmt.setString(3, regional.getRegionalEndereco());
			stmt.setString(4, regional.getRegionalBairro());
			stmt.setString(5, regional.getRegionalCidade());
			stmt.setString(6, regional.getRegionalEstado());
			stmt.setString(7, regional.getRegionalCEP());
			stmt.setInt(8, regional.getRegionalTelefoneDDD1());
			stmt.setString(9, regional.getRegionalTelefoneNumero1());
			stmt.setInt(10, regional.getRegionalTelefoneDDD2());
			stmt.setString(11, regional.getRegionalTelefoneNumero2());
			stmt.setInt(12, regional.getRegionalFAXDDD());
			stmt.setString(13, regional.getRegionalFAXNumero());
			stmt.setString(14, regional.getRegionalResponsavel());
			stmt.setInt(15, regional.getRegionalResponsavelTelefoneDDD());
			stmt.setString(16, regional.getRegionalResponsavelTelefone());
			stmt.setInt(17, regional.getRegionalResponsavelCelularDDD());
			stmt.setString(18, regional.getRegionalResponsavelCelular());
			stmt.setString(19, regional.getRegionalResponsavelEmail());
			stmt.setString(20, regional.getRegionalResponsavelObservacao());
			stmt.setInt(21, 0);

			
			// executa
			stmt.execute();

			// fecha
			stmt.close();

		}

		catch (SQLException e) {
			System.out.println("algum erro");
			e.printStackTrace();

		}

	}

	public void atualiza(RegionalBean regional) {

		// atualizando no banco
		PreparedStatement stmt;
		try {
			stmt = this.connection
					.prepareStatement("UPDATE regional  SET regional_codigo=?, regional_nome=?, "
							+ "regional_endereco=?,regional_bairro=?, regional_cidade=?, "
							+ "regional_estado=?, regional_cep=?, regional_telefone_ddd1=?, "
							+ "regional_telefone_numero1=?, regional_telefone_ddd2=?, "
							+ "regional_telefone_numero2=?, regional_fax_ddd=?, regional_fax_numero=?,"
							+ "regional_responsavel=?, regional_responsavel_telefone_ddd=?,"
							+ "regional_responsavel_telefone=?, regional_responsavel_celular_ddd=?,"
							+ "regional_responsavel_celular=?, regional_responsavel_email=?, "
							+ "regional_responsavel_observacao=?, regional_status=? WHERE regional_id=?");

			stmt.setString(1, regional.getRegionalCodigo());
			stmt.setString(2, regional.getRegionalNome());
			stmt.setString(3, regional.getRegionalEndereco());
			stmt.setString(4, regional.getRegionalBairro());
			stmt.setString(5, regional.getRegionalCidade());
			stmt.setString(6, regional.getRegionalEstado());
			stmt.setString(7, regional.getRegionalCEP());
			stmt.setInt(8, regional.getRegionalTelefoneDDD1());
			stmt.setString(9, regional.getRegionalTelefoneNumero1());
			stmt.setInt(10, regional.getRegionalTelefoneDDD2());
			stmt.setString(11, regional.getRegionalTelefoneNumero2());
			stmt.setInt(12, regional.getRegionalFAXDDD());
			stmt.setString(13, regional.getRegionalFAXNumero());
			stmt.setString(14, regional.getRegionalResponsavel());
			stmt.setInt(15, regional.getRegionalResponsavelTelefoneDDD());
			stmt.setString(16, regional.getRegionalResponsavelTelefone());
			stmt.setInt(17, regional.getRegionalResponsavelCelularDDD());
			stmt.setString(18, regional.getRegionalResponsavelCelular());
			stmt.setString(19, regional.getRegionalResponsavelEmail());
			stmt.setString(20, regional.getRegionalResponsavelObservacao());
			stmt.setInt(21, regional.getRegionalStatus());
			stmt.setInt(22, regional.getRegionalID());

			// executa
			stmt.execute();

			// fecha
			stmt.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void deleta(RegionalBean regional) {
		PreparedStatement stmt = null;
		try {
			stmt = this.connection
					.prepareStatement("DELETE FROM regional WHERE regional_id = ?");

			stmt.setInt(1, regional.getRegionalID());

			// executa
			stmt.execute();

			// fecha
			stmt.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void atualizaStatus(RegionalBean regional) {
		try {
			PreparedStatement stmt = this.connection
					.prepareStatement("UPDATE regional SET regional_status=? WHERE regional_id=?");
			stmt.setInt(1, regional.getRegionalStatus());
			stmt.setInt(2, regional.getRegionalID());
			// executa
			stmt.execute();

			// fecha
			stmt.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public RegionalBean busca(Integer id) {
		try {
			PreparedStatement stmt = this.connection
					.prepareStatement("SELECT * FROM regional WHERE regional_id=?");
			stmt.setInt(1, id);
			ResultSet rs = stmt.executeQuery();
			if (!rs.next())
				return null;
			RegionalBean regional = new RegionalBean();

			regional.setRegionalCodigo(rs.getString("regional_codigo"));
			regional.setRegionalNome(rs.getString("regional_nome"));
			regional.setRegionalEndereco(rs.getString("regional_endereco"));
			regional.setRegionalBairro(rs.getString("regional_bairro"));
			regional.setRegionalCidade(rs.getString("regional_cidade"));
			regional.setRegionalEstado(rs.getString("regional_estado"));
			regional.setRegionalCEP(rs.getString("regional_cep"));
			regional.setRegionalTelefoneDDD1(rs
					.getInt("regional_telefone_ddd1"));
			regional.setRegionalTelefoneNumero1(rs
					.getString("regional_telefone_numero1"));
			regional.setRegionalTelefoneDDD2(rs
					.getInt("regional_telefone_ddd2"));
			regional.setRegionalTelefoneNumero2(rs
					.getString("regional_telefone_numero2"));
			regional.setRegionalFAXDDD(rs.getInt("regional_fax_ddd"));
			regional.setRegionalFAXNumero(rs.getString("regional_fax_numero"));

			regional.setRegionalResponsavel(rs
					.getString("regional_responsavel"));
			regional.setRegionalResponsavelTelefoneDDD(rs
					.getInt("regional_responsavel_telefone_ddd"));
			regional.setRegionalResponsavelTelefone(rs
					.getString("regional_responsavel_telefone"));
			regional.setRegionalResponsavelCelularDDD(rs
					.getInt("regional_responsavel_celular_ddd"));
			regional.setRegionalResponsavelCelular(rs
					.getString("regional_responsavel_celular"));
			regional.setRegionalResponsavelEmail(rs
					.getString("regional_responsavel_email"));
			regional.setRegionalResponsavelObservacao(rs
					.getString("regional_responsavel_observacao"));
			regional.setRegionalStatus(rs.getInt("regional_status"));
			regional.setRegionalID(rs.getInt("regional_id"));

			rs.close();
			stmt.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return regional;

	}

	public List<RegionalBean> getLista() {

		try {
			PreparedStatement stmt = this.connection
					.prepareStatement("SELECT * FROM regional");
			ResultSet rs = stmt.executeQuery();
			List<RegionalBean> list = new ArrayList<RegionalBean>();
			while (rs.next()) {
				RegionalBean regional = new RegionalBean();
				regional.setRegionalCodigo(rs.getString("regional_codigo"));
				regional.setRegionalNome(rs.getString("regional_nome"));
				regional.setRegionalEndereco(rs.getString("regional_endereco"));
				regional.setRegionalBairro(rs.getString("regional_bairro"));
				regional.setRegionalCidade(rs.getString("regional_cidade"));
				regional.setRegionalEstado(rs.getString("regional_estado"));
				regional.setRegionalCEP(rs.getString("regional_cep"));
				regional.setRegionalTelefoneDDD1(rs
						.getInt("regional_telefone_ddd1"));
				regional.setRegionalTelefoneNumero1(rs
						.getString("regional_telefone_numero1"));
				regional.setRegionalTelefoneDDD2(rs
						.getInt("regional_telefone_ddd2"));
				regional.setRegionalTelefoneNumero2(rs
						.getString("regional_telefone_numero2"));
				regional.setRegionalFAXDDD(rs.getInt("regional_fax_ddd"));
				regional.setRegionalFAXNumero(rs
						.getString("regional_fax_numero"));

				regional.setRegionalResponsavel(rs
						.getString("regional_responsavel"));
				regional.setRegionalResponsavelTelefoneDDD(rs
						.getInt("regional_responsavel_telefone_ddd"));
				regional.setRegionalResponsavelTelefone(rs
						.getString("regional_responsavel_telefone"));
				regional.setRegionalResponsavelCelularDDD(rs
						.getInt("regional_responsavel_celular_ddd"));
				regional.setRegionalResponsavelCelular(rs
						.getString("regional_responsavel_celular"));
				regional.setRegionalResponsavelEmail(rs
						.getString("regional_responsavel_email"));
				regional.setRegionalResponsavelObservacao(rs
						.getString("regional_responsavel_observacao"));
				regional.setRegionalStatus(rs.getInt("regional_status"));
				regional.setRegionalID(rs.getInt("regional_id"));

				list.add(regional);
				
			}
			rs.close();
			stmt.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return list;

	}
}

segue o codigo todo....

thiago.correa

Cara e como você está chamando esse método?!

Ironlynx

bruno, o sami tá certo.Põe a variável list(de RegionalBean) no escopo do return, ou seja, fora do try! :wink:

Criado 24 de setembro de 2007
Ultima resposta 24 de set. de 2007
Respostas 8
Participantes 5