Olá, eu estou inserindo dados numa tabela do Access usando o ODBC driver. eu estou usando uma interface JFrame mas quando eu clico no botao registrar da o seguinte erro:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:766)
at ProductControle.adicionarProduto(ProductControle.java:28)
at SychronizerTest$1.actionPerformed(SychronizerTest.java:29)
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.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
import java.sql.*;
public class ProductControle {
private ProductVisao visao;
private Connection connection;
public ProductControle(Connection c) {
this.visao = new ProductVisao();
connection = c;
}
public void adicionarProduto() {
try {
PreparedStatement pstmt;
//String select = "SELECT description, amount, price FROM ProductsShop";
//pstmt = connection.prepareStatement(select);
//ResultSet resultSet = pstmt.executeQuery();
String insert = "INSERT INTO ProductsShop(description) VALUES('?')";
pstmt = connection.prepareStatement(insert);
pstmt.setString(1, visao.getJDescricao());
//pstmt.setInt(2, visao.getJQuantidade());
//pstmt.setDouble(3, visao.getJPreco());
pstmt.execute();
connection.close();
} catch (SQLException sqlex) {
sqlex.printStackTrace();
System.err.println(sqlex.toString());
}
/*catch(NullPointerException npex){
System.err.println("que erro eh esse?");
npex.printStackTrace();
}*/
}
}
import java.awt.*;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ProductVisao extends JFrame{
protected Container container;
protected JTextField jCodigo = new JTextField(5);
protected JTextField jDescricao = new JTextField(10);
protected JTextField jQuantidade = new JTextField(5);
protected JTextField jPreco = new JTextField(5);
protected JButton jBotaoRegistrar = new JButton("Registrar");
public ProductVisao(){
super("MacShop");
this.setBounds(100, 100, 700, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = this.getContentPane();
container.setLayout(new FlowLayout());
this.setTitle("Programa de Vendas");
container.add(new JLabel("Código do Produto: "));
container.add(jCodigo);
container.add(new JLabel("Descrição: "));
container.add(jDescricao);
container.add(new JLabel("Quantidade: "));
container.add(jQuantidade);
container.add(new JLabel("Preço: "));
container.add(jPreco);
container.add(jBotaoRegistrar);
}
GridBagConstraints c = new GridBagConstraints();
public String getJCodigo() {
return jCodigo.getText();
}
public String getJDescricao() {
return jDescricao.getText();
}
public int getJQuantidade() {
return Integer.parseInt(jQuantidade.getText());
}
public double getJPreco() {
return Double.parseDouble(jPreco.getText());
}
public void adicionarListenerRegistrar(ActionListener itemListener){
this.jBotaoRegistrar.addActionListener(itemListener);
}
}
quem saberia corrigir esse erro?