Bom estou tentando organizar meu projeto e criei um dao com um insert, mas estou com esses errors:
Exception in thread “main” java.lang.NullPointerException
at javaapplication2.UsuarioDAO.add(UsuarioDAO.java:27)
at javaapplication2.JavaApplication2.main(JavaApplication2.java:22)
: Java returned: 1
Classe principal:
public static void main(String[] args) {
Usuario u = new Usuario();
u.setNome("xd");
u.setSenha("xd");
UsuarioDAO dao = new UsuarioDAO();
dao.add(u);
}
conexão com banco de dados:
public class ConnectionFactory {
public Connection getConnection() {
String url = "jdbc:mysql://localhost:3306/helpsemeq"+"?verifyServerCertificate=false&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=America/Sao_Paulo";
String usuario = "root";
String senha = "";
Connection result = null;
try {
Class.forName("com.mysql.jdbc.Driver");
result = DriverManager.getConnection(url, usuario, senha);
JOptionPane.showMessageDialog(null,"Sucess");
return result;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e, "ERRO", JOptionPane.ERROR_MESSAGE);
}
return result;
}
}
classe Usuario:
public class Usuario {
private static Usuario instance;
private Long id;
private String nome;
private String senha;
public Usuario(Long id, String nome, String senha){
this.id=id;
this.nome=nome;
this.senha=senha;
}
public Usuario(String nome, String senha){
this.nome=nome;
this.senha=senha;
}
public Usuario(){
}
public static Usuario getInstance() {
if (instance == null)
instance = new Usuario();
return instance;
}
public void setId(Long id){
this.id=id;
}
public Long getId(){
return id;
}
public void setNome(String nome){
this.nome=nome;
}
public String getNome(){
return nome;
}
public void setSenha(String senha){
this.senha=senha;
}
public String getsenha(){
return senha;
}
}
a classe do DAOUsuario
public class UsuarioDAO extends ConnectionFactory {
private Connection con;
public UsuarioDAO(){
}
public boolean add(Usuario u){
String sql = "INSERT INTO usuario(nome,senha) VALUES(?,?,?)";
try{
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, u.getNome());
stmt.setString(2, u.getsenha());
return true;
} catch (SQLException ex){
Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
}
bom pelo que vi ao debuggar o problema está nessa parte:
try{ PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, u.getNome()); stmt.setString(2, u.getsenha()); return true; }
