Pessoal, esse erro tá aparecendo no meu programa, mas eu já conferi tudo e aparentemente está certo. Se vocês puderem me ajudar eu agradecerei muito!
package biblioteca.DAO; import biblioteca.Classes.Usuario; import biblioteca.Classes.Endereco; import java.sql.*; import javax.swing.JOptionPane; import java.util.ArrayList; public class UsuarioDAO { private Connection conexao = null; // criando uma conexão /*Verifica a conexao com o banco de dados*/ public UsuarioDAO(){ //informações do banco String url = "jdbc:mysql://localhost/db_biblioteca"; String usuario = "root"; String senha = ""; boolean aux = false; while(aux == false){ try{ conexao = DriverManager.getConnection(url, usuario, senha); JOptionPane.showMessageDialog(null, "Conexao feita com sucesso"); aux = true; } catch(SQLException e){ JOptionPane.showMessageDialog(null, "Erro!\n"+ e.getMessage()+"\nTente novamente."); } } } /*Adiciona usuarios ao banco*/ public void inserirUsuario(Usuario usuario){ String insercao2 = "insert into tb_endereco(END_LOGRADOURO, END_NUMERO_CASA, END_CIDADE, END_CEP) values(?,?,?,?)"; String insercao = "insert into tb_usuarios(USU_NOME, USU_EMAIL, USU_TELEFONE, USU_DT_NASCIMENTO, USU_CPF, USU_USUARIO, USU_SENHA) values(?,?,?,?,?,?,?)"; //USU_NOME USU_EMAIL USU_TELEFONE USU_DT_NASCIMENTO USU_CPF USU_ENDERECO_ID USU_USUARIO USU_SENHA PreparedStatement ps; PreparedStatement ps2; // Criando um objeto do tipo dessa classe do drive do SQL boolean aux = false; while(aux == false){ try{ ps2 = conexao.prepareStatement(insercao2); ps = conexao.prepareStatement(insercao); ps2.setString(1, usuario.getEndereco_usu().getLogradouro()); ps2.setInt(2, usuario.getEndereco_usu().getNumero()); ps2.setString(3, usuario.getEndereco_usu().getCidade()); ps2.setString(4, usuario.getEndereco_usu().getCep()); ps.setString(1, usuario.getNome()); ps.setString(2, usuario.getEmail()); ps.setString(3, usuario.getTelefone()); ps.setString(4, usuario.getData_nascimento()); ps.setString(5, usuario.getCpf()); ps.setString(6, usuario.getUsuario()); ps.setString(7, usuario.getSenha()); JOptionPane.showMessageDialog(null, "Usuário inserido."); aux = true; } catch(SQLException e){ JOptionPane.showMessageDialog(null, "Erro!\n" + e.getMessage() + "\nTente novamente."); } } } public boolean Login(Usuario user){ String consulta ="SELECT * FROM `tb_usuarios` WHERE USU_USUARIO=? AND USU_SENHA=?"; PreparedStatement ps; boolean aux = false; try{ ps = conexao.prepareStatement(consulta); ps.setString(1, user.getUsuario()); ps.setString(2, user.getSenha()); ResultSet rs = ps.executeQuery(); while(rs.next()){ if(rs.getString("USU_USUARIO").equals(user.getUsuario()) && rs.getString("USU_SENHA").equals(user.getSenha())) aux = true; else aux = false; } } catch(SQLException e){ JOptionPane.showMessageDialog(null, "Erro na consulta dos dados: "+e); } return aux; } }
> package biblioteca.Run;
import biblioteca.Classes.Usuario; import biblioteca.Classes.Endereco; import biblioteca.DAO.UsuarioDAO;public class TelaCadastroUser extends javax.swing.JFrame {
/** * Creates new form TelaCadastroUser */ public TelaCadastroUser() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); nome = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); datanasc = new javax.swing.JFormattedTextField(); jLabel4 = new javax.swing.JLabel(); telefone = new javax.swing.JFormattedTextField(); jLabel5 = new javax.swing.JLabel(); email = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); logradouro = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); numero = new javax.swing.JTextField(); jLabel9 = new javax.swing.JLabel(); cep = new javax.swing.JFormattedTextField(); jLabel10 = new javax.swing.JLabel(); cidade = new javax.swing.JTextField(); jLabel11 = new javax.swing.JLabel(); user = new javax.swing.JTextField(); jLabel12 = new javax.swing.JLabel(); password = new javax.swing.JPasswordField(); jLabel13 = new javax.swing.JLabel(); btCadastro = new javax.swing.JButton(); cpf = new javax.swing.JFormattedTextField(); jLabel182 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jPanel1.setBackground(new java.awt.Color(250, 251, 251)); jLabel1.setFont(new java.awt.Font("Yu Gothic UI Light", 1, 24)); // NOI18N jLabel1.setForeground(new java.awt.Color(44, 62, 80)); jLabel1.setText("Cadastro"); jLabel3.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel3.setForeground(new java.awt.Color(44, 62, 80)); jLabel3.setText("Nome:"); jLabel2.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel2.setForeground(new java.awt.Color(44, 62, 80)); jLabel2.setText("Data de nascimento:"); try { datanasc.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##/##/####"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jLabel4.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel4.setForeground(new java.awt.Color(44, 62, 80)); jLabel4.setText("Celular:"); try { telefone.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("+55 (##) 9 ####-####"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jLabel5.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(44, 62, 80)); jLabel5.setText("E-Mail:"); jLabel6.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel6.setForeground(new java.awt.Color(44, 62, 80)); jLabel6.setText("CPF:"); jLabel7.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel7.setForeground(new java.awt.Color(44, 62, 80)); jLabel7.setText("Logradouro:"); jLabel8.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel8.setForeground(new java.awt.Color(44, 62, 80)); jLabel8.setText("Número:"); jLabel9.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel9.setForeground(new java.awt.Color(44, 62, 80)); jLabel9.setText("CEP:"); try { cep.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####-###"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jLabel10.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel10.setForeground(new java.awt.Color(44, 62, 80)); jLabel10.setText("Cidade:"); jLabel11.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel11.setForeground(new java.awt.Color(44, 62, 80)); jLabel11.setText("Usuário:"); jLabel12.setFont(new java.awt.Font("Yu Gothic UI Semibold", 0, 14)); // NOI18N jLabel12.setForeground(new java.awt.Color(44, 62, 80)); jLabel12.setText("Senha:"); jLabel13.setFont(new java.awt.Font("Yu Gothic UI Semilight", 1, 10)); // NOI18N jLabel13.setForeground(new java.awt.Color(44, 62, 80)); jLabel13.setText("A senha deve conter no mínimo 8 caracteres alfanuméricos"); btCadastro.setBackground(new java.awt.Color(130, 25, 10)); btCadastro.setFont(new java.awt.Font("Yu Gothic UI Light", 1, 12)); // NOI18N btCadastro.setForeground(new java.awt.Color(250, 251, 251)); btCadastro.setText("CADASTRAR"); btCadastro.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btCadastroActionPerformed(evt); } }); try { cpf.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jLabel182.setFont(new java.awt.Font("Yu Gothic UI Semilight", 1, 10)); // NOI18N jLabel182.setForeground(new java.awt.Color(44, 62, 80)); jLabel182.setText("USUÁRIO"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(167, 167, 167) .addComponent(jLabel1) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(jLabel13)) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(167, 167, 167) .addComponent(btCadastro) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(nome)) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(email, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(datanasc, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(26, 26, 26) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(telefone, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cpf)))) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(logradouro)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel8) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(numero, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cep, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel10) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cidade)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(user) .addGap(18, 18, 18) .addComponent(jLabel12) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel182))) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(datanasc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4) .addComponent(telefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(email, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6) .addComponent(cpf, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7) .addComponent(logradouro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(numero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel9) .addComponent(cep, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel10) .addComponent(cidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) .addComponent(user, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12) .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel13) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 47, Short.MAX_VALUE) .addComponent(btCadastro) .addGap(20, 20, 20) .addComponent(jLabel182) .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); pack(); }// </editor-fold> private void btCadastroActionPerformed(java.awt.event.ActionEvent evt) { Endereco end = new Endereco(logradouro.getText(), Integer.parseInt(numero.getText()), cidade.getText(), cep.getText()); Usuario usuario = new Usuario(nome.getText(), cpf.getText(), datanasc.getText(), email.getText(), telefone.getText(), end, user.getText(), String.valueOf(password.getPassword())); UsuarioDAO userBanco = new UsuarioDAO(); userBanco.inserirUsuario(usuario); nome.setText(""); telefone.setText(""); email.setText(""); datanasc.setText(""); logradouro.setText(""); numero.setText(""); cep.setText(""); cidade.setText(""); user.setText(""); password.setText(""); } /** * @param args the command line arguments */ // Variables declaration - do not modify private javax.swing.JButton btCadastro; private javax.swing.JFormattedTextField cep; private javax.swing.JTextField cidade; private javax.swing.JFormattedTextField cpf; private javax.swing.JFormattedTextField datanasc; private javax.swing.JTextField email; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel182; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JTextField logradouro; private javax.swing.JTextField nome; private javax.swing.JTextField numero; private javax.swing.JPasswordField password; private javax.swing.JFormattedTextField telefone; private javax.swing.JTextField user; // End of variables declaration }
Esse é o erro
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at biblioteca.DAO.UsuarioDAO.inserirUsuario(UsuarioDAO.java:54) at biblioteca.Run.TelaCadastroUser.btCadastroActionPerformed(TelaCadastroUser.java:293) at biblioteca.Run.TelaCadastroUser.access$000(TelaCadastroUser.java:14) at biblioteca.Run.TelaCadastroUser$1.actionPerformed(TelaCadastroUser.java:140) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)