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?
