简体   繁体   中英

I'm trying insert values into MySQL database, getting NullPointerException

I'm trying to insert some data captured by a gui form into my database. When I run the program, and try to add a vendor, I'm getting a nullpointerexception, and am having trouble figuring out why. Any guidance is greatly appreciated.

Java Method:

private void addVendorToDbButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                    

         addVendorPanel.setVisible(true);

         //ANDY:
         String vendorName = addVendorNameField.getText();
         String customerName = addCustomerNumField.getText();
         String vendorCode = addVendorCodeField1.getText();

     String sql = "INSERT INTO VENDORS (Vendor,Cust#,Vendorcode)"+"VALUES('"+vendorName+"','"+customerName+"','"+vendorCode+"')";
     try {
         openconnection();
         rs = statement.executeQuery(sql);
     } catch (SQLException ex) {
         Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
     }
}       

OpenConnection:

public void openconnection(){
     Connection conn = null;
        try {
      conn = DriverManager.getConnection("jdbc:mysql://sql3.freemysqlhosting.net:3306/sql376856", "xxxx","xxxxx");
      System.out.println("Connected database successfully...");
        } catch (Exception e) {
            System.out.println(e);
        }
    try {
        Statement statement = conn.createStatement();
    } catch (SQLException ex) {
        Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
    }
}

Declare Global Variables for Use:

public class gui extends javax.swing.JFrame {


 Statement statement;  
 Connection conn;
 ResultSet rs;
/**
 * Creates new form gui
 */
public gui() {
    initComponents();
}

Error Message:

run:
Connected database successfully...
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at database.gui.addVendorToDbButtonActionPerformed(gui.java:1142)
at database.gui.access$1300(gui.java:23)
at database.gui$14.actionPerformed(gui.java:562)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at        javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
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:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
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)

我认为您在方法addVendorToDbButtonActionPerformed中的语句变量为null,因此存在nullpointer异常。

public void openconnection(){
        try {
      conn = DriverManager.getConnection("jdbc:mysql://sql3.freemysqlhosting.net:3306/sql376856", "xxxx","xxxxx");
      System.out.println("Connected database successfully...");
        } catch (Exception e) {
            System.out.println(e);
        }
    try {
        statement = conn.createStatement();
    } catch (SQLException ex) {
        Logger.getLogger(gui.class.getName()).log(Level.SEVERE, null, ex);
    }
}

if you go this route. make sure you make another method to close your connection.

I'd also recommend moving statement = conn.createStatement(); to the method where you defined your query. Make sure you close the statement and result set in that method after retrieving your results.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM