Erro ao salvar no banco de dados mysql (alguem pode me ajudar)

private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {

       String Sql = "com.mysql.jdbc.Driver";
       
             String url = "jdbc:mysql://localhost:3306/cpjudi";

                obj.setadvogado(nomeadvogado.getText());
                obj.setescritorio(escritorio.getText());
                obj.setendereco(endereco.getText());
                obj.settelefone(telefone.getText());
                obj.setoab(oab.getText());
                obj.setrg(rg.getText());
                obj.setcpf(cpf.getText());
                obj.settituloeleitor(tituloeleitor.getText());
                obj.setdatanascimento(datanascimento.getText());
                obj.setnaturalidade(naturalidade.getText());
                obj.setnacionalidade(nacionalidade.getText());
                obj.setespecialidade((String)especialidade.getSelectedItem());
                
             try{ 
        String drive = null;
                 
               Class.forName(drive);
                 
               Connection connection = null;  
        try {
                connection = (Connection) DriverManager.getConnection(url, "root", "");
        } catch (SQLException ex) {
        }
               
               java.sql.Statement Statement = connection.createStatement();
Statement.executeUpdate("Insert INTO advogado(nomeadvogado,escritorio,endereço,telefone,oab,rg,cpf,tituloeleitor,datanascimento,naturalidade,nacionalidade,especialidade )" + "VALUES (null ,'" + obj.getnomeadvogado() + "' , '" + obj.getescritorio() + "','" + obj.getendereco() +  "','" + obj.gettelefone() + "','" + obj.getoab() + "','" + obj.getrg() + "','" + obj.getcpf() + "','" + obj.gettituloeleitor() + "','" +  obj.getdatanascimento() + "','" + obj.getnaturalidade() + "','" + obj.getnacionalidade() + "','" + obj.getespecialidade() + "')");
         
                
JOptionPane.showMessageDialog(null,"Cadastro realiado com sucesso");
  
connection.close();

} catch (ClassNotFoundException erro) {
    
 JOptionPane.showMessageDialog(null, "Driver JDBC-ODBC não encontrado!");
 
} catch (SQLException erro) {
    
JOptionPane.showMessageDialog(null, "Problemas na conexao com a fonte de dados" + erro.toString());    
    
}
            
}

ERRO:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at CadastrarAdvogado.botaoSalvarActionPerformed(CadastrarAdvogado.java:354)
at CadastrarAdvogado.access$300(CadastrarAdvogado.java:21)
at CadastrarAdvogado$4.actionPerformed(CadastrarAdvogado.java:139)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)

NullPointerException, você está com alguma variavel ou ponteiro nullo, sem valor, verifique seus gets, e outra, vc usa a conexão com o banco no action do botão? oO Cria uma classe pra isso cara, e instancia no botão…

cara to perdido nesse codigo vo refazer tudo de novo

Necessito de ajuda tentei e reformulei o código não deu certo
private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {

String Sql = “com.mysql.jdbc.Driver”;

String url = “jdbc:mysql://localhost:3306/cpjudi”;

obj.setadvogado(nomeadvogado.getText());
obj.setescritorio(escritorio.getText());
obj.setendereco(endereco.getText());
obj.settelefone(telefone.getText());
obj.setoab(oab.getText());
obj.setrg(rg.getText());
obj.setcpf(cpf.getText());
obj.settituloeleitor(tituloeleitor.getText());
obj.setdatanascimento(datanascimento.getText());
obj.setnaturalidade(naturalidade.getText());
obj.setnacionalidade(nacionalidade.getText());
obj.setespecialidade((String)especialidade.getSelectedItem());

try{
String driver = null;

Class.forName(driver);

Connection connection = null;
try {
connection = (Connection) DriverManager.getConnection(url, “root”, “”);
} catch (SQLException ex) {
}

java.sql.Statement Statement = connection.createStatement();
Statement.executeUpdate(“Insert INTO advogado(nomeadvogado,escritorio,endereço,telefone,oab,rg,cpf,tituloeleitor,datanascimento,naturalidade,nacionalidade,especialidade )” + “VALUES (null ,’” + obj.getnomeadvogado() + “’ , '” + obj.getescritorio() + “’,’” + obj.getendereco() + “’,’” + obj.gettelefone() + “’,’” + obj.getoab() + “’,’” + obj.getrg() + “’,’” + obj.getcpf() + “’,’” + obj.gettituloeleitor() + “’,’” + obj.getdatanascimento() + “’,’” + obj.getnaturalidade() + “’,’” + obj.getnacionalidade() + “’,’” + obj.getespecialidade() + “’)”);

JOptionPane.showMessageDialog(null,“Cadastro realiado com sucesso”);

connection.close();

} catch (ClassNotFoundException erro) {

JOptionPane.showMessageDialog(null, “Driver JDBC-ODBC não encontrado!”);

} catch (SQLException erro) {

JOptionPane.showMessageDialog(null, “Problemas na conexao com a fonte de dados” + erro.toString());

}

}

ERRO:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at CadastrarAdvogado.botaoSalvarActionPerformed(CadastrarAdvogado.java:354)
at CadastrarAdvogado.access$300(CadastrarAdvogado.java:21)
at CadastrarAdvogado$4.actionPerformed(CadastrarAdvogado.java:139)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:201
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:67
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:12
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)

Antes de mais nada, corrija essa porcaria que ficou de tanto código misturado.
Use a tag [code] e formate adequadamente.

Amigo,
Utilize as tags code para postar o código e ficar mais legível.

O seu problema é que falta o driver do banco de dados. Veja que o driver esta null:

String driver = null;

Class.forName(driver); 

Qual driver esta utilizando???

Tente:

String driver = "com.mysql.jdbc.Driver";

Class.forName(driver); 

Obrigado pelas informações

agora me surgiu um novo problema ao compilar essa mensagem

problema na conexão com a fonte de dadosjava.sql.SQLException:Column count doesn’t match value count at row 1

Pessoal bom dia sou novo aqui e estou com um problema na hora de conectar ao banco
em si a aplicação com a string localhost está funcionando mas quando vou colocar em um outro pc da rede (já arrumei a string para o ip do servidor) mas o ip não está estático e toda vez que liga ele muda tem alguma coisa que posso fazer no java mesmo ou tenho que configurar primeiramente a rede para ter ip fixo ?

O problema é que o número de colunas da tabela não é o mesmo do número de parâmetros passado:

java.sql.Statement Statement = connection.createStatement();
Statement.executeUpdate("Insert INTO advogado(nomeadvogado,escritorio,endereço,telefone,oab,rg,cpf,tituloeleitor,datanascimento,naturalidade,nacionalidade,especialidade )" + "VALUES (null ,'" + obj.getnomeadvogado() + "' , '" + obj.getescritorio() + "','" + obj.getendereco() + "','" + obj.gettelefone() + "','" + obj.getoab() + "','" + obj.getrg() + "','" + obj.getcpf() + "','" + obj.gettituloeleitor() + "','" + obj.getdatanascimento() + "','" + obj.getnaturalidade() + "','" + obj.getnacionalidade() + "','" + obj.getespecialidade() + "')");

Veja, você especifica a coluna nomeadvogado, e antes de passar o nome, você esta colocando um null… talvez retirando resolva…

java.sql.Statement Statement = connection.createStatement();
Statement.executeUpdate("Insert INTO advogado(nomeadvogado,escritorio,endereço,telefone,oab,rg,cpf,tituloeleitor,datanascimento,naturalidade,nacionalidade,especialidade )" + "VALUES ('" + obj.getnomeadvogado() + "' , '" + obj.getescritorio() + "','" + obj.getendereco() + "','" + obj.gettelefone() + "','" + obj.getoab() + "','" + obj.getrg() + "','" + obj.getcpf() + "','" + obj.gettituloeleitor() + "','" + obj.getdatanascimento() + "','" + obj.getnaturalidade() + "','" + obj.getnacionalidade() + "','" + obj.getespecialidade() + "')");

Recomendo estudar um pouco JDBC para aprender boas praticas…
Seu programa terá muitos problemas escrevendo o código desta forma… um deles será problemas de SQL Injection…

[quote=eduardoPalomo]Pessoal bom dia sou novo aqui e estou com um problema na hora de conectar ao banco
em si a aplicação com a string localhost está funcionando mas quando vou colocar em um outro pc da rede (já arrumei a string para o ip do servidor) mas o ip não está estático e toda vez que liga ele muda tem alguma coisa que posso fazer no java mesmo ou tenho que configurar primeiramente a rede para ter ip fixo ?[/quote]
Ao meu ver, precisa deixar estatico o IP ou em algum host fora do servidor (vish, porqueira detected!). Eu faria com ip fixo para nao dar problemas do genero.

Cara tente assim

public void adiciona(Contato contato) {
		String sql = "insert into contatos(nome,email,endereco,dataNascimento) values (?,?,?,?)";
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			stmt.setString(1, contato.getNome());
			stmt.setString(2, contato.getEmail());
			stmt.setString(3, contato.getEndereco());
			stmt.setDate(4, new Date(contato.getDataNascimento()
					.getTimeInMillis()));
			stmt.execute();
			stmt.close();

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

Antes precisa usar a conexao no objeto e depois adicionar com esse metodo. Qualquer duvida estamos ae.
Apostila fj21 da caelum tem isso… da uma olhada la

(este ja é um tratamento de SQL Injection)

[quote=denisspitfire][quote=eduardoPalomo]Pessoal bom dia sou novo aqui e estou com um problema na hora de conectar ao banco
em si a aplicação com a string localhost está funcionando mas quando vou colocar em um outro pc da rede (já arrumei a string para o ip do servidor) mas o ip não está estático e toda vez que liga ele muda tem alguma coisa que posso fazer no java mesmo ou tenho que configurar primeiramente a rede para ter ip fixo ?[/quote]
Ao meu ver, precisa deixar estatico o IP ou em algum host fora do servidor (vish, porqueira detected!). Eu faria com ip fixo para nao dar problemas do genero.[/quote]

Eu deixei o ip estático o pc está pingando o servidor e o servidor está pingando o pc mas não consigo fazer as operações com o programa , já arrumei a string de conexão e tudo já add a exceção da porta 3306 no firewall já abilitei acesso remoto no mysql mas não estou conseguindo

cria um teste de conexao, esquece as operações