Java.lang.NullPointerException Ao inserir dado na tabela

Pessoal uso mysql em uma aplicação aqui, ja fiz varios inserts ao longo dela, porem esse está dando problemas, alguem pode me ajudar?

segue a estrutura da tabela

id_ret int(5) usuario varchar(40) valor decimal(8,2) motivo varchar(100) data date 20

Segue anexo o metodo, podem ver que eu peguei a query exatamente igual ela funciona no phpmyadmin, ou seja com valores chumbados e recebo o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at yamada3.ret_caixa.gravaRetirada(ret_caixa.java:95) at yamada3.ret_caixa.jButton2ActionPerformed(ret_caixa.java:253) at yamada3.ret_caixa.access$200(ret_caixa.java:18) at yamada3.ret_caixa$3.actionPerformed(ret_caixa.java:164) 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:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) 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:4687) 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)

private void gravaRetirada(){ String usuario = edusuario.getText(); String valor = edvalor.getText(); String motivo = edmotivo.getText(); String data_texto = eddata.getText(); String[] data = data_texto.split("/"); // agora vamos converter pra long int ano = Integer.parseInt(data[2]) - 1900; int mes = Integer.parseInt(data[1]); int dia = Integer.parseInt(data[0]); int mes_correto = mes-1; // agora é só instanciar a Date de java.sql java.sql.Date newDate = new java.sql.Date(ano, mes_correto, dia); // bom uso da sua variavel Date no formato sql System.out.print(usuario); System.out.print(valor); System.out.print(motivo); System.out.print(newDate); String insereSQL = "INSERT INTO `yamada`.`retirada` (`id_ret` ,`usuario` ,`valor` ,`motivo` ,`data`)VALUES (NULL , 'a', '11', '11', '2012-09-23')"; try { con.statemente.executeUpdate(insereSQL); } catch (SQLException ex) { } }

Fizesse grant all privileges para o seu usuário no banco?
recomendo você ler isso, porque seu programa está sugeito a SQL inject…

Dei sim, pois existem outros inserts que funcionam perfeitamente, apenas esse está com problemas.

Qual dessas é a linha 95?

NullPointerException não tem nada a ver com banco. Quer dizer uma coisa, e somente uma: Você está tentando acessar uma variável que está nula.

Pode ser, por exemplo, que a variável con, ou a statemente (que está dentro dela) não tenham sido inicializadas.

A forma mais fácil de corrigir o NullPointerException é colocando um breakpoint na linha indicada (no caso, a 95) e vendo o que está nulo.