Java com PostgreSQL

6 respostas
ErielMiquilino

Olá gente!

Essa é a primeira vez que pergunto em um fórum, sou iniciante (bem iniciante) em java e esto com um probleminha!
To tentando salvar os dados da minha tela de cadastros em um banco de dados postgreSQL

Eu fiz o método pra salvar:

private void salvar(){ conexao = new ConnectionPG(); JOptionPane.showMessageDialog(null, "Salvo com sucesso"); try { PreparedStatement pst = conexao.conn.prepareStatement("INSERT INTO produto_sys(nome, codigo, ean, ncm, unidade, vlr_venda, margem, vlr_custo, grupo, tributacao, aliquota_icms, cst_csosn) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"); pst.setString(1, getTxtNomeProduto().getText()); pst.setString(2, getTxtCodProduto().getText()); pst.setString(3, getTxtEanProduto().getText()); pst.setString(4, getTxtNcmProduto().getText()); pst.setString(5, "un"); pst.setString(6, getTxtPrecoVendaProduto().getText()); pst.setString(7, getTxtMargemVendaProduto().getText()); pst.setString(8, getTxtPrecoCustoProduto().getText()); pst.setString(9, "1"); pst.setString(10, "1"); pst.setString(11, getTxtAliquitaProduto().getText()); pst.setString(12,"060"); pst.executeUpdate(); JOptionPane.showMessageDialog(null, "Salvo com sucesso"); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Salvo com sucesso\nErro:"+ex.getMessage()); } }

e adicionei um ActionListener em um JMenuItem com o método acima

private JMenuItem getMenuItemSalvar(){ if(menuItemSalvar == null){ menuItemSalvar = new JMenuItem("Salvar"); Propriedades.setFont(menuItemSalvar); conexao = new ConnectionPG(); menuItemSalvar.addActionListener((ActionEvent evt) -> { salvar(); }); } return menuItemSalvar;

mas toda vida que tento salvar os dados ele da esse erro gigante:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at br.com.chefsystem.gui.JanelaProduto.salvar(JanelaProduto.java:414) at br.com.chefsystem.gui.JanelaProduto.lambda$getMenuItemSalvar$0(JanelaProduto.java:103) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6535) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227) at java.awt.Dialog.show(Dialog.java:1084) at java.awt.Component.show(Component.java:1673) at java.awt.Component.setVisible(Component.java:1625) at java.awt.Window.setVisible(Window.java:1014) at java.awt.Dialog.setVisible(Dialog.java:1005) at br.com.chefsystem.gui.JanelaProduto.iniciarJanela(JanelaProduto.java:448) at br.com.chefsystem.gui.JanelaProduto.<init>(JanelaProduto.java:455) at br.com.chefsystem.gui.JanelaPricipal.lambda$getMenuPrincipal$0(JanelaPricipal.java:37) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6535) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

To Usando o NetBeans, mas não to usando arquivos prontos de JFrame.

Quem puder me dar uma mãozinha!

Oque eu to fazendo de errado??

Desde já eu agradeço, gente!
vlw

6 Respostas

pmlm

Esse “erro gigante” é o teu melhor amigo quando algo está errado.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at br.com.chefsystem.gui.JanelaProduto.salvar(JanelaProduto.java:414)

O que tens na linha 414 da class JanelaProduto (Dentro do método salvar)? Alguma coisa lá está a null e estás a tentar invocar algum método sobre esse objeto null.

ErielMiquilino

Essa linha é o método salvar (este que postei logo acima) mais precisamente o PreparedStatement que passei a String SQL

H

antes de salvar manda imprimir as informações para ver se está tudo ok

altere tambem o pst.executeUpdate(); para pst.execute();

A

Olá ErielMiquilino,

Verifique na linha 414 do seu código fonte de JanelaProduto existe um objeto que não foi inicializado. Ele está com valor “null”. Temos acesso apenas um trecho do código e portanto não temos certeza qual a linha do método salvar está o objeto sem inicialização.

Possivelmente o erro está entre a linha 6 a 16 onde vc chama o método “getText()”. Algum método como “getTxtEanProduto()” está retornando null e ao executar o “getText()” está lançando o erro de NullPointerException

Sugestão após revolver o erro de NullPointer:
Insira o código antes do código “pst.executeUpdate()” na linha 18.

//imprimir o código SQL antes de executar o código no banco.
System.out.println("SQL: " + pst.toString());
pmlm

Aposto que conn está a null…

ErielMiquilino

Gente muito obrigadoo!!!

Consegui resolver escrevi na tela o resultado dos JTextField realmente havia 2 TxtField que estavam com problema, também troquei
pst.executeUpdate(); para pst.execute(); como o himorrivel sugeriu.

Criado 20 de outubro de 2015
Ultima resposta 22 de out. de 2015
Respostas 6
Participantes 4