Não estou conseguindo cadastrar o usuario no banco de dados

3 respostas
netbeansjavamysql
F

Eae Galera estou desenvolvendo um projeto com interface grafica no netbeans, mas estou com um problema não consigo cadastrar o usuario no banco de dados quando coloco as informações dele.


Esse é o erro que esta dando

run:
Wed Oct 03 20:37:23 BRT 2018 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at model.dao.UsuarioDAO.create(UsuarioDAO.java:18)
at interface_grafica.TelaCadastro.btn_cadastroActionPerformed(TelaCadastro.java:242)
at interface_grafica.TelaCadastro.access$100(TelaCadastro.java:16)
at interface_grafica.TelaCadastro$2.actionPerformed(TelaCadastro.java:113)
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$Actions.actionPerformed(BasicButtonListener.java:303)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1668)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2929)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
at java.awt.Component.processEvent(Component.java:6316)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:835)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1103)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:974)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:800)
at java.awt.Component.dispatchEventImpl(Component.java:4760)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
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:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)

Esta é minha classe que aparentemente esta dando erro
package model.dao;

import connection.ConnectionFactory;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

import model.bean.Usuarios;
public class UsuarioDAO {

public void create(Usuarios us){

Connection con = ConnectionFactory.getConnection();

PreparedStatement stmt = null;
try {
        stmt = con.prepareStatement("INSERT INTO usuarios (email,senha,nome_completo,estado,cidade,endereco)VALUES(?,?,?,?,?,?)");
        stmt.setString(1, us.getEmail());
        stmt.setString(2, us.getSenha());
        stmt.setString(3, us.getNome_completo());
        stmt.setString(4, us.getEstado());
        stmt.setString(5, us.getCidade());
        stmt.setString(6, us.getEndereco());
        
        stmt.executeUpdate();
        
        JOptionPane.showMessageDialog(null,"Cadastrado com Sucesso");
        
    } catch (SQLException ex) { 
        JOptionPane.showMessageDialog(null,"Erro ao Cadastrar"+ex);
        Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null,ex);
    }finally{
        ConnectionFactory.closeConnection(con, stmt);
    }
}

}


Esta é a minha classe de conexão


package connection;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;
public class ConnectionFactory {

private static final String DRIVER = com.mysql.jdbc.Driver;

private static final String URL = jdbc:mysql://localhost:3306/reciclagemapp”;

private static final String USER = root;

private static final String PASS = “”;

public static Connection getConnection(){

try {
       Class.forName(DRIVER);
       
       Connection con = DriverManager.getConnection(URL,USER,PASS);
   }catch (ClassNotFoundException | SQLException ex){
       throw new RuntimeException("Erro na Conexão",ex);
   }
       return null;
}

public static void closeConnection(Connection con){

if (con != null) {

try {

con.close();

} catch (SQLException ex) {

System.err.println("ERRO: "+ex.getMessage());

}

}

}
public static void closeConnection(Connection con,PreparedStatement stmt){

if (stmt != null) {

try {

stmt.close();

} catch (SQLException ex) {

System.err.println("ERRO: "+ex.getMessage());

}

}
closeConnection(con);
}
public static void closeConnection(Connection con,PreparedStatement stmt, ResultSet rs){

if (rs != null) {

try {

rs.close();

} catch (SQLException ex) {

System.err.println("ERRO: "+ex.getMessage());

}

}
closeConnection(con, stmt);
}

}


desculpe por tantas linhas pessoal rs, espero que consiga me ajudar.

3 Respostas

Jonathan_Medeiros

Tente mudar a sua string URL!

Exemplo:

String URL = "jdbc:mysql://localhost:3306/reciclagemapp" 
    + "?verifyServerCertificate=true" 
    + "&useSSL=true"
    + "&requireSSL=true";
F

tentei fazer isso cara mas deu outro erro

esse aqui

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at model.dao.UsuarioDAO.create(UsuarioDAO.java:18)

at interface_grafica.TelaCadastro.btn_cadastroActionPerformed(TelaCadastro.java:242)

at interface_grafica.TelaCadastro.access$100(TelaCadastro.java:16)

at interface_grafica.TelaCadastro$2.actionPerformed(TelaCadastro.java:113)

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$Actions.actionPerformed(BasicButtonListener.java:303)

at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)

at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)

at javax.swing.JComponent.processKeyBindings(JComponent.java:2929)

at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)

at java.awt.Component.processEvent(Component.java:6310)

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.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)

at

ele fala que é na linha 18 da minha classe UsuarioDAO

que no caso é essa

12 public class UsuarioDAO {

13   public void create(Usuarios us){

14        Connection con = ConnectionFactory.getConnection();

15      PreparedStatement stmt = null;

16
try {
        stmt = con.prepareStatement("INSERT INTO usuarios (email,senha,nome_completo,estado,cidade,endereco)VALUES(?,?,?,?,?,?)");
        stmt.setString(1, us.getEmail());
        stmt.setString(2, us.getSenha());
        stmt.setString(3, us.getNome_completo());
        stmt.setString(4, us.getEstado());
        stmt.setString(5, us.getCidade());
        stmt.setString(6, us.getEndereco());
        
        stmt.executeUpdate();
        
        JOptionPane.showMessageDialog(null,"Cadastrado com Sucesso");
        
    } catch (SQLException ex) { 
        JOptionPane.showMessageDialog(null,"Erro ao Cadastrar"+ex);
        Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null,ex);
    }finally{
        ConnectionFactory.closeConnection(con, stmt);
    }
}

}

Jonathan_Medeiros

O problema do SSL parece ter sido resolvido!

Esse segundo problema é por que alguma coisa está chegando como nula, verifica esse trecho do seu código no modo debug.

Criado 3 de outubro de 2018
Ultima resposta 4 de out. de 2018
Respostas 3
Participantes 2