Bom dia.
Vejam se conseguem identificar onde está o erro, por favor.
Classe Conexao
package br.com.tutorial;
import java.lang.*;
import java.sql.*;
public class Conexao {
private String url = "jdbc:mysql://127.0.01/tutorial?user=root&password=root";
public Connection abrirConexao(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url);
System.out.println("Conexao com Banco de Dados estabelecida.");
}
catch (SQLException erroSQL) {
System.out.println("Erro na conexão com o Banco "+erroSQL.getMessage());
}
catch (ClassNotFoundException erroClass){
System.out.println("Erro ao carregar o Driver "+erroClass.getMessage());
}
catch (Exception e){
System.out.println("Ocoreru um erro: "+e.getMessage());
}
return null;
}
public static void fecharConexao(Connection con){
try{
con.close();
System.out.println("Conexao com o Banco de Dados fechada.");
}
catch (SQLException erroSQL){
System.out.println("Erro na comunicação com o Banco "+erroSQL.getMessage());
}
catch (Exception e){
System.out.println("Ocorreu um erro: "+e.getMessage());
}
}
public static void main (String[] args){
new Conexao().abrirConexao();
}
}
Classe ProprietarioDAO
package br.com.tutorial;
import java.io.IOException;
import java.sql.*;
import java.util.*;
public class ProprietarioDAO {
private Connection con;
public ProprietarioDAO(Connection con){
setCon(con);
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
public String inserir(ProprietarioBean proprietario){
String sql = "INSERT INTO "
+"proprietario(nome,cidade) "
+"VALUES(?,?)";
try{
PreparedStatement p = getCon().prepareStatement(sql);
p.setString(1, proprietario.getNome());
p.setString(2, proprietario.getCidade());
if (p.executeUpdate() > 0) {
return "Dados inseridos com sucesso!";
}
else return "Erro ao inserir!";
}
catch (SQLException e){
e.printStackTrace();
return "SQLException: "+e.getMessage();
}
}
}
Classe Teste
package br.com.tutorial;
import java.sql.*;
import java.util.*;
public class Teste {
public static void main(String[] args){
Conexao conexao = new Conexao();
Connection con = conexao.abrirConexao();
ProprietarioBean pb = new ProprietarioBean();
ProprietarioDAO pd = new ProprietarioDAO(con);
pb.setNome("João");
pb.setCidade("Brasília");
pd.inserir(pb);
}
}
O erro é os seguinte:
Conexao com Banco de Dados estabelecida.
Exception in thread “main” java.lang.NullPointerException
at br.com.tutorial.ProprietarioDAO.inserir(ProprietarioDAO.java:41)
at br.com.tutorial.Teste.main(Teste.java:23)
Java Result: 1
A linha 41 da Classe ProprietarioDAO é esta aqui:
PreparedStatement p = getCon().prepareStatement(sql);
E a linha 23 da Classe Teste:
pd.inserir(pb);
Não consegui identificar porque que está dando Null Pointer…