Faz uma verificação, removendo espaços e removendo as barras se for nulo quer dizer que o usuário não preencheu nada. Aí seta o valor nulo para a variável. No seu banco a coluna data pode ser vazia?
Estou Usando JDBC com Acess, e aceita grava vazio Sim.
Em Relação ao verificar se está vazio eu uso uma rotina para JtextField:
[code] public static String vazio(String var){
if (var.isEmpty()){
var = null;
return var;
}
else
return var;
}
[/code]
Mais Ela não Funciona Pra jDataChooser… Acho que por ser do Tipo Date.
Qunado tento gravar no Banco de dados da o seguinte erro:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1075)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:876)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:869)
at java.text.DateFormat.format(DateFormat.java:316)
at telas.cadastro_clientes.update(cadastro_clientes.java:1123)
at telas.cadastro_clientes.botao_salvarActionPerformed(cadastro_clientes.java:823)
at telas.cadastro_clientes.access$200(cadastro_clientes.java:14)
at telas.cadastro_clientes$3.actionPerformed(cadastro_clientes.java:529)
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.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
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)
Esse erro dá quando você seta vazio né?
O que eu sugeri é assim, faz uma verificação se for vazio já seta vazio direto, sem fazer a conversão. do simpleDateFormat eu acredito que o erro seja por isso.
A meu ver não perde em nada. Pois quando você converte e armazena em uma variavel Date ou GregorianCallendar ele já faz as verificações, por exemplo se digitar mês 13 vai para janeiro do ano seguinte.
Desculpa a demora para responder…mas só uma dúvida, entendo que esse campo não é obrigatório, se ele não é obrigatório porque você está colocando ele no INSERT?
Exemplo:
String sql = "INSERT INTO TESTE (campos) VALUES (valores)";
Não necessariamente na parte de “campos” precisa conter todos os campos da tabela, sendo assim, ele só irá conter os campos not-null, e se o campo data estiver vazio ou null, ele não estará na parte dos campos…