Olá galera!
Tô com um problema ao tentar gravar uma data no PostgreSQL.
Tenho uma classe Pedidos, onde tenho os métodos getData e setData.
Tenho uma classe PedidosController, onde tenho o método cadastrarPedido.
E tenho um formulário, onde eu coleto os dados necessários e passo para a classe PedidosController fazer a inserção no banco. Só que ao tentar gravar no banco dá um erro relativo à data.
Para exemplificar melhor aí vai os códigos:
Erro
Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at Controlller.PedidosController.cadastrarPedido(PedidosController.java:37)
at IntefacesAlmoxarifado.FormCadastroPedido.btSalvarActionPerformed(FormCadastroPedido.java:677)
at IntefacesAlmoxarifado.FormCadastroPedido.access$1400(FormCadastroPedido.java:42)
at IntefacesAlmoxarifado.FormCadastroPedido$15.actionPerformed(FormCadastroPedido.java:315)
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:272)
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)
Classe PedidosController
[code]public void cadastrarPedido() throws SQLException{
Conexao banco = new Conexao();
banco.abrirConexao();
String query = "INSERT INTO \"PEDIDOS\" (\"PED_DATA\", \"PED_TOTAL\", \"PED_IDUNIDADE\") VALUES (?, ?, ?)";
try{
banco.stmt = banco.conexao.prepareStatement(query);
banco.stmt.setDate(1,(Date) this.pedido.getData());//O erro é apontado aqui!
banco.stmt.setInt(2, this.pedido.getTotal());
banco.stmt.setInt(3, this.pedido.unidade.getId());
banco.stmt.execute();
banco.conexao.commit();
banco.stmt.close();
}catch (SQLException e){
banco.conexao.rollback();
JOptionPane.showMessageDialog(null, e.getMessage());
}
banco.fecharConexao();
}[/code]
Formulário
PedidosController pedido = new PedidosController();
FormatoData data = new FormatoData();//USADO PARA FORMATAR A DATA NO SEGUINTE FORMATO: yyyy-MM-dd
pedido.getPedido().setData(data.getData(tfData.getText()));
//É acionado no momento em que o usuário clica no botão salvar
//Posue mais código, no entanto não interfere
Classe para formatar data
public class FormatoData {
String data_br;
java.util.Date data;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public String getDataBR(java.util.Date data) {
try {
data_br = df.format(data);
}
catch (Exception e) {
data_br = "";
}
return data_br;
}
public java.util.Date getData(String data_br) {
try {
data = df.parse(data_br.trim());
} catch (ParseException ex) {
data = null;
}
return data;
}
}
O erro é o seguinte:
Alguém pode me ajudar?
T+