NullPointerException ao inserir registro no banco

7 respostas
java
M
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());

}

}

7 Respostas

R

O que exatamente tem nessa linha?

darlan_machado

O que existe nesta linha???

M
PreparedStatement ps = connection.prepareStatement(sql);
darlan_machado

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.

M
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

darlan_machado

Provavelmente, o método acima retorne null…

M
Alterei meu metodo de conexaoEu 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());

}

}
Criado 6 de fevereiro de 2018
Ultima resposta 6 de fev. de 2018
Respostas 7
Participantes 3