Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at br.com.formularios1.conector.execute(conector.java:41)
at br.com.formularios1.CadastrarLivros.CadastrarLivros_botao_salvarActionPerformed(CadastrarLivros.java:266)
at br.com.formularios1.CadastrarLivros.access$500(CadastrarLivros.java:10)
at br.com.formularios1.CadastrarLivros$6.actionPerformed(CadastrarLivros.java:119)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Verifique qual das variáveis da linha 41 da classe conector.java não foi inicializada. E não poste títulos usando SOMENTE LETRAS MAIÚSCULAS.
Esse conector que estou usando:
package br.com.formularios1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class conector {
public void open(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url,user,pass);
stmt = con.createStatement();
} catch(ClassNotFoundException ex){
System.out.println(ex.getMessage());
}catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("ABERTO");
}
public void close(){
try{
stmt.close();
con.close();
} catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("Conexão Fechada");
}
public void execute (String query) {
try{
if( stmt.executeUpdate(query) != Statement.EXECUTE_FAILED){
System.out.println("Registro inserido com sucesso");
}
} catch (SQLException ex){
System.out.println(ex.getMessage());
}
}
private final String url = "jdbc:mysql://localhost:3306/teste";
private final String user = "root";
private final String pass = "";
Connection con;
Statement stmt;
}
posso não ser um gênio, mas desde que o erro foi gerado, você modificou a classe certo ?
isso vai dificultar sabermos o que houve se você puder passar o arquivo original, ou o completo vai ajudar, já que a linha 41 não tem nada a ver com o que foi descrito no erro
Esse erro diz o seguinte, “Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException” primeiro ele diz em que Thread ocorreu o erro, depois ele mostra o tipo do erro (a classe dele) no caso é um “NullPointerException”, até onde sei esse erro ocorre quando você tenta executar uma operação em uma variável que não foi setado o seu valor
tipo se você tentar trabalhar com um objeto que não foi instanciado ainda, significa que o valor dele é null.
então eu te aconselho a procurar algum lugar no seu código onde possa ocorre algo desse tipo, as vesses isso pode ocorre por causa da saída do scopo tipo você cria a variável fora de um IF, mas atribute o valor dentro dele, se esse IF não for executado a variável nunca será inicializada.
Não lembro muito bem de tudo, mas espero ter ajudado
To lascado, tentando corrigir aqui ai apaguei a classe , to criando ela de novo aqui, e daqui a pouco de peço ajuda, blz[/url]? rsrs
tranquilo quando tiver esse tipo de problema não poste só o erro, ele sozinho não serve muito, mas junto do código que originou ele ai já muda
Está é minha conexão :
package br.com.formularios1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class conector {
public void open(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url,user,pass);
stmt = con.createStatement();
} catch(ClassNotFoundException ex){
System.out.println(ex.getMessage());
}catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("ABERTO");
}
public void execute (String query) {
try{
if( stmt.executeUpdate(query) != Statement.EXECUTE_FAILED){
System.out.println("Registro inserido com sucesso");
}
} catch (SQLException ex){
System.out.println(ex.getMessage());
}
}
public void close(){
try{
stmt.close();
con.close();
} catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("Conexão Fechada");
}
private final String url = "jdbc:mysql://localhost:3306/teste";
private final String user = "root";
private final String pass = "";
Connection con;
Statement stmt;
}
Está é a tela de Cadastro de Livros que tento cadastrar para inserir no banco de dados.
package br.com.formularios1;
public class CadastrarLivros extends javax.swing.JFrame {
conector c;
public CadastrarLivros() {
initComponents();
c = new conector();
c.open();
}
private void CadastrarLivros_botao_CadastrarActionPerformed(java.awt.event.ActionEvent evt) {
CadastrarLivros_Titulo_texto.setEnabled(true);
CadastrarLivros_Autor_texto.setEnabled(true);
CadastrarLivros_Editora_texto.setEnabled(true);
CadastrarLivros_AnodePublicacao_texto.setEnabled(true);
CadastrarLivros_Edicao_texto.setEnabled(true);
}
private void CadastarLivro_AlterarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void CadastrarLivros_botao_finalizarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String Titulo= CadastrarLivros_Titulo_texto.getText();
String Autor = CadastrarLivros_Autor_texto.getText();
String Editora = CadastrarLivros_Editora_texto.getText();
String Ano_de_Publicacao= CadastrarLivros_AnodePublicacao_texto.getText();
String Edicao = CadastrarLivros_Edicao_texto.getText();
String query = "INSERT INTO `books` (Titulo,Autor, Editora,Ano_de_Publicacao,Edicao)VALUES";
query += "('"+Titulo+"','"+Autor+"','"+Editora+"','"+Ano_de_Publicacao+"','"+Edicao+"')";
//System.out.println(query);
c.execute(query);
}
ai está dando este erro :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at br.com.formularios1.conector.execute(conector.java:27)
at br.com.formularios1.CadastrarLivros.CadastrarLivros_botao_finalizarActionPerformed(CadastrarLivros.java:262)
at br.com.formularios1.CadastrarLivros.access$200(CadastrarLivros.java:18)
at br.com.formularios1.CadastrarLivros$3.actionPerformed(CadastrarLivros.java:83)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
OK segura aew vou ver o que posso fazer
da uma olhada quando você executa o método open() do seu connector ele por acaso entre em alguma de suas exception ?
também vai uma dica um statemente está estritamente relacionado com uma pesquisa no banco, significa que cada query (inserção/update/delete/pesquisa) deve ter seu statemente para ele pelo menos é a forma que eu faço ou seja crie um statemente para cada query e não use um para todas as querys.
alem do mais vá na sua classe conctor na linha 27 e me copie o que tem nela, espero que você não tenha mexido no arquivo ainda.
conector completo
package br.com.formularios1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class conector {
public void open(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url,user,pass);
stmt = con.createStatement();
} catch(ClassNotFoundException ex){
System.out.println(ex.getMessage());
}catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("ABERTO");
}
public void execute (String query) {
try{
if( stmt.executeUpdate(query) != Statement.EXECUTE_FAILED){
System.out.println("Registro inserido com sucesso");
}
} catch (SQLException ex){
System.out.println(ex.getMessage());
}
}
public void close(){
try{
stmt.close();
con.close();
} catch(SQLException ex){
System.out.println(ex.getMessage());
}
System.out.println("Conexão Fechada");
}
private final String url = "jdbc:mysql://localhost:3306/teste";
private final String user = "root";
private final String pass = "";
Connection con;
Statement stmt;
}
outra dica o java posse duas saidas padrão determinadas System.out e System.err se você for mostra um erro na tela recomendo que você use o System.err e não o out
se você for fazer um projeto grande te recomendo que você use a biblioteca log4j ao inves de imprimir seus erros assim
blz cara vc me deu o conector completo mas de uma olhada no erro
at br.com.formularios1.conector.execute(conector.java:27)
ele está dizendo que na linha 27 deu algo errado, e aqui a linha 27 para min é System.out.println("Registro inserido com sucesso");
ou seja não é essa linha que deu o erro que ele está mostrando por isso peço que vá no seu projeto e pegue a linha 27 que você ver lá
Poderia te mostrar pelo teamviewer, pode ser?
faz um favor troque esse código aqui do seu connector para esse asski
[code]public void execute (String query) {
try{
if( stmt.executeUpdate(query) != Statement.EXECUTE_FAILED){
System.out.println(“Registro inserido com sucesso”);
}
} catch (SQLException ex){
System.out.println(ex.getMessage());
}
} [/code]
[code]public void execute (String query) {
try{
System.out.println(stmt);
if( stmt.executeUpdate(query) != Statement.EXECUTE_FAILED){
System.out.println(“Registro inserido com sucesso”);
}
} catch (SQLException ex){
System.out.println(ex.getMessage());
}
} [/code]
e me diga o que acontece
o erro só mudou, de linha:
null
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at br.com.formularios1.conector.execute(conector.java:28)
at br.com.formularios1.CadastrarLivros.CadastrarLivros_botao_finalizarActionPerformed(CadastrarLivros.java:243)
at br.com.formularios1.CadastrarLivros.access$200(CadastrarLivros.java:4)
at br.com.formularios1.CadastrarLivros$3.actionPerformed(CadastrarLivros.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)