Retornando endereço da memória ao inves dos dados

6 respostas
S

opa, blz?

entao, to tentando fazer um insert aqui seguindo um modelo com DBDao, mas n ta dando certo, pos os codigos aqui:

package View;

import Controle.LoginControle;
import Model.ModelCadastro;
import java.sql.SQLException;

//... aqu vai a interface gui coms os textfield nomeC etc...
//aqui a acao do botao cadastrar,
//o parametro modo é uma String que recebe "ADMIN" ou "USER" do combobox q o usuario seleciona;
cadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent cadastrar) {
				verificarcampos();
				if (erro == false) {
					ModelCadastro cadastro;
					cadastro = new ModelCadastro(nomeC.getText(), usuarioC.getText(), senhaC.getText(), modo);
					try {
					System.out.println(cadastro);//aqui pra testar, ele imprimi o endereco de memoria e nao os dados;
					login.inserirUsuario(cadastro);//aqui acusa o erro;
					JOptionPane.showMessageDialog(null,"Cadastro feito com sucesso!" );
					}catch (SQLException erro) {
						JOptionPane.showMessageDialog(null, "Erro: " +erro.getMessage()+" "+erro.getErrorCode());
					}
				}				
			}
		});

construtor:

package Model;

public class ModelCadastro {
	private String nome, usuario, senha, permissao;

	public ModelCadastro(String nome, String usuario, String senha, String permissao) {
		this.nome = nome;
		this.usuario = usuario;
		this.senha = senha;
		this.permissao = permissao;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getPermissao() {
		return permissao;
	}

	public void setPermissao(String permissao) {
		this.permissao = permissao;
	}	
}

outra…a Control

package Controle;

import java.sql.Connection;
import java.sql.SQLException;

import DBOracle.UsuarioDAO;
import Model.ModelCadastro;



public class LoginControle {
	
	private UsuarioDAO usuariodao;
	
	public LoginControle(Connection con) {
		usuariodao = new UsuarioDAO(con);
	}
	
	public boolean inserirUsuario(ModelCadastro cadastro) throws SQLException {
		return usuariodao.inserirUsuario(cadastro);
	}

}

e a dao

package DBOracle;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import Model.ModelCadastro;

public class UsuarioDAO {
	private Connection con;
	private int proximoCod;
	
	public UsuarioDAO(Connection con) {
		this.con = con;
	}
	
	public boolean inserirUsuario(ModelCadastro cadastro) throws SQLException {
		PreparedStatement stm = null;
		try {
			String sql = "SELECT MAX(IDLOGIN) FROM LOGIN";
			stm = con.prepareStatement(sql);
			ResultSet rs = stm.executeQuery();
			while (rs.next()) {
				proximoCod = rs.getInt(1)+1;
				System.out.println(proximoCod);
			}
			rs.close();
			stm.close();
			sql = "INSERT INTO LOGIN VALUES (?,?,?,?,?)";
			stm = con.prepareStatement(sql);
			stm.setInt(1, proximoCod);
			stm.setString(2, cadastro.getUsuario());
			stm.setString(3, cadastro.getSenha());
			stm.setString(4, cadastro.getPermissao());
			stm.setString(5, cadastro.getNome());
			stm.execute();
			return true;
		}catch(SQLException a) {
			JOptionPane.showMessageDialog(null, "Erro ao salvar dados no banco! " +a.getMessage()+" "+a.getErrorCode());
		}finally {
			stm.close();
		}
		return false;
	}
}

quando tento cadastrar, ele acusa esse erro:

Model.ModelCadastro@1a06e38
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at View.CadastrarUser$2.actionPerformed(CadastrarUser.java:142)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

fiz um system.out.println pra testar e ele imprimi o endereco de memoria…

onde q to fazendo errado?

6 Respostas

rogelgarcia

Não é o endereço de memória.

Sugiro estudar Java mais básico antes de passar para interface gráfica.

http://download.oracle.com/javase/tutorial/ (Estude trails covering the basics)

S

rogelgarcia, vlww!

mas uma duvida, se n eh endereco de memoria isso ali, o que seria??

alanrodrigues

Vendo por cima parece estar certo…
Pode ser que algum campo que você está tentando salvar esteja com o valor nulo
Aprenda a Debugar que ajuda muito…
flw

ManoJava

Bom dia!!

Pelo que vejo ele ta te retornando o objeto cadastro, tente a seguinte opção:

System.out.println(cadastro.nome);
System.out.println(cadastro.usuario);
System.out.println(cadastro.senha);
System.out.println(cadastro.permissao);

Att.

ViniGodoy

O erro diz que em momento nenhum você deu “new” na variável login.

Como vc não deu new, esse variável não aponta para objeto nenhum, portanto, seu valor ainda é nulo. Daí o nome NullPointerException.

rogelgarcia

sunsite:
rogelgarcia, vlww!

mas uma duvida, se n eh endereco de memoria isso ali, o que seria??

Falei isso pra te deixar curioso. No trails que mencionei terá a explicação. :smiley:

Criado 21 de julho de 2011
Ultima resposta 22 de jul. de 2011
Respostas 6
Participantes 5