Estou tentando adicionar um registro no banco de dados porém estou tendo o seguinte erro:
Exception in thread “main” java.lang.NullPointerException
at methods.DadosDAO.insert(DadosDAO.java:27)
at main.TestFiles.main(TestFiles.java:16)
O que posso fazer pra consertar isso?
método main:
public static void main(String[] args) {
DadosDAO dao = new DadosDAO();
dao.insert(new Dados (“teste”));
}
método inserir:
private Connection connection;
public DadosDAO(){
connection = new Conexao().getConexao();
}
try {
String sql = "INSERT INTO \"TESTE\"(\"NOME\") VALUES (?)";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, obj.getNome());
ps.execute();
} catch (SQLException e) {
throw new IllegalAccessError("erro, ao incluir o registro na base " + e.getMessage());
}
Classe de conexão
public Connection getConexao(){
try {
DriverManager.getConnection(url, user, password);
return con;
} catch (SQLException e) {
throw new IllegalAccessError("Problemas ao se conectar ao banco de dados " + e.getMessage());
}
}
Por alguma razão, o teu objeto connection está nulo.
Precisa instanciar o mesmo, antes de invocar qualquer coisa nele, como, por exemplo, o método prepareStatement.
public void insert(Dados obj) {
Conexao con = new Conexao();
try {
String sql = “INSERT INTO “TESTE”(“NOME”) VALUES (?)”;
PreparedStatement ps = con.getConexao().prepareStatement(sql);
ps.setString(1, obj.getNome());
ps.execute();
} catch (SQLException e) {
throw new IllegalAccessError("erro, ao incluir o registro na base " + e.getMessage());
}
}
Acabei de instanciar, e o erro continua para a linha 23
Alterei meu metodo de conexao…
Eu estava retornando con, mas nao estava atribuindo nada a con
Obrigado pela ajuda e participação
public Connection getConexao(){
try {
con = DriverManager.getConnection(url, user, password);
return con;
} catch (SQLException e) {
throw new IllegalAccessError("Problemas ao se conectar ao banco de dados " + e.getMessage());
}
}