Ir ao conteúdo

Posts recomendados

Postado

Estou com problemas ao carregar os dados do banco de dados: não está carregando todos os dados para o formulário, até então não tem erros, mas ao usar o botão salvar ocasiona o seguinte erro na linha abaixo:

Caused by: java.lang.NullPointerException
    at model.dao.impl.SellerDaoJDBC.insert(SellerDaoJDBC.java:40)
    at model.services.SellerService.saveOrUpdate(SellerService.java:19)
    at gui.SellerFormController.onBtSaveAction(SellerFormController.java:128)

@Override
	public void insert(Seller obj) {
		PreparedStatement st = null;
		try {
			st = conn.prepareStatement(
					"INSERT INTO seller "
					+ "(Name, NumFunc, DepartmentId) "
					+ "VALUES "
					+ "(?, ?, ?)",
					Statement.RETURN_GENERATED_KEYS);
			
			st.setString(1, obj.getName());
			st.setInt(2, obj.getNumFunc());
			st.setInt(11, obj.getDepartment().getId());
			
			int rowsAffected = st.executeUpdate();
			
			if (rowsAffected > 0) {
				ResultSet rs = st.getGeneratedKeys();
				if (rs.next()) {
					int id = rs.getInt(1);
					obj.setId(id);
				}
				DB.closeResultSet(rs);
			}
			else {
				throw new DbException("Unexpected error! No rows affected!");
			}
		}
		catch (SQLException e) {
			throw new DbException(e.getMessage());
		}
		finally {
			DB.closeStatement(st);
		}
	}

 

Postado

Você está chamando uma função de um objeto nulo, por isso essa exceção. Verifica na linha 40 qual o objeto que é nulo e investigue o por que dele não ter sido inicializado.

 

Só com o código que você postou não tem como a gente analisar.

  • 3 semanas depois...
Postado

Adriano, obrigado pela ajuda, vou postar as três classes do erro, talvez você consiga enxergar o que não vejo...

Caused by: java.lang.NullPointerException
    at model.dao.impl.SellerDaoJDBC.update(SellerDaoJDBC.java:83)
    at model.services.SellerService.saveOrUpdate(SellerService.java:22)
    at gui.SellerFormController.onBtSaveAction(SellerFormController.java:128)
    ... 134 more

@FXML
	public void onBtSaveAction(ActionEvent event) {
		// System.out.println("Ação do Botão Salvar!!!");
		if (entity == null) {
			throw new IllegalStateException("Entity was null");
		}
		if (service == null) {
			throw new IllegalStateException("Service was null");
		}
		try {
			entity = getFormData();// pegar os dados da cx e instanciar um depto
			service.saveOrUpdate(entity);
			notifyDataChangeListeners();
			Utils.currentStage(event).close();
			
		} catch (ValidationException e) {
			setErrorMessages(e.getErros());
		} catch (DbException e) {
			Alerts.showAlert("Error saving object", null, e.getMessage(), AlertType.ERROR);
		}
	}

 

package model.services;

import java.util.List;

import model.dao.DaoFactory;
import model.dao.SellerDao;
import model.entities.Seller;

public class SellerService {
	
	private SellerDao dao = DaoFactory.createSellerDao();
	
	public List<Seller> findAll(){
		return dao.findAll();
	}
	
	public void saveOrUpdate(Seller obj) {
		if(obj.getId() == null) {
			dao.insert(obj);
		}
		else {
			dao.update(obj);
		}
	}

 

@Override
	public void update(Seller obj) {
		PreparedStatement st = null;
		try {
			st = conn.prepareStatement(
					"UPDATE seller "
					+ "SET Name = ?, NumFunc = ?, NumVinc = ?, NumPen = ?,  Email = ?, BirthDate = ?, BaseSalary = ?, Banco = ?, Agencia = ?, Conta = ?, DepartmentId = ? "
					+ "WHERE Id = ?");
			
			st.setString(1, obj.getName());
			st.setInt(2, obj.getNumFunc());
			st.setInt(3, obj.getNumVinc());
			st.setInt(4, obj.getNumPen());
			st.setString(5, obj.getEmail());
			st.setDate(6, new java.sql.Date(obj.getBirthDate().getTime()));
			st.setDouble(7, obj.getBaseSalary());
			st.setInt(8, obj.getBanco());
			st.setInt(9, obj.getAgencia());
			st.setInt(10, obj.getConta());
			st.setInt(11, obj.getDepartment().getId());
			st.setInt(12, obj.getId());
			
			st.executeUpdate();
		}
		catch (SQLException e) {
			throw new DbException(e.getMessage());
		}
		finally {
			DB.closeStatement(st);
		}
	}

 

package model.entities;

import java.io.Serializable;
import java.util.Date;

public class Seller implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer id;
	private String name;
	private Integer numFunc;
	private Integer numVinc;
	private Integer numPen;
	
	private Double baseSalary;
	private Date birthDate;
	private String email;
	
	private Integer banco;
	private Integer agencia;
	private Integer conta;
	
	private Department department;
	
	public Seller() {
	}

	public Seller(Integer id, String name, Integer numFunc, Integer numVinc, 
			Integer numPen, Double baseSalary, Date birthDate,
			String email, Integer banco, Integer agencia, Integer conta, 
			Department department) {
		this.id = id;
		this.name = name;
		this.numFunc = numFunc;
		this.numVinc = numVinc;
		this.numPen = numPen;
				
		this.baseSalary = baseSalary;
		this.birthDate = birthDate;
		this.email = email;
		
		this.banco = banco;
		this.agencia = agencia;
		this.conta = conta;
		
		this.department = department;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public Integer getNumFunc() {
		return numFunc;
	}

	public void setNumFunc(Integer numFunc) {
		this.numFunc = numFunc;
	}
		
	public Integer getNumVinc() {
		return numVinc;
	}

	public void setNumVinc(Integer numVinc) {
		this.numVinc = numVinc;
	}

	public Integer getNumPen() {
		return numPen;
	}

	public void setNumPen(Integer numPen) {
		this.numPen = numPen;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}

	public Double getBaseSalary() {
		return baseSalary;
	}

	public void setBaseSalary(Double baseSalary) {
		this.baseSalary = baseSalary;
	}
	
	public Integer getBanco() {
		return banco;
	}

	public void setBanco(Integer banco) {
		this.banco = banco;
	}

	public Integer getAgencia() {
		return agencia;
	}

	public void setAgencia(Integer agencia) {
		this.agencia = agencia;
	}

	public Integer getConta() {
		return conta;
	}

	public void setConta(Integer conta) {
		this.conta = conta;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Seller other = (Seller) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}
	
	
	@Override
	public String toString() {
		return "Seller [id=" + id + ", name=" + name + ", numFunc=" + numFunc + ", numVinc=" + numVinc + ", numPen="
				+ numPen + ", baseSalary=" + baseSalary + ", birthDate=" + birthDate + ", email=" + email + ", banco="
				+ banco + ", agencia=" + agencia + ", conta=" + conta + ", department=" + department + "]";
	}
}

 

Postado

Não tem código suficiente para compilar, logo não tenho como depurar para saber exatamente onde está o problema.

 

Meu palpite é que a função getFormData() está retornando null. Você passa esse objeto null para a função saveOrUpdate(), que passa para a função update(), que tenta acessar algum atributo e é aí que a bomba estoura.

 

Coloque um if antes de chamar a função saveOrUpdate() testando se entity é null.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!