2016-10-20 4 views
0
private void cmbProductItemStateChanged(java.awt.event.ItemEvent evt) {            
    if (cmbProduct.getSelectedIndex() > 0) { 
     Connection con = null; 
     CallableStatement cstmt = null; 
     ResultSet rs = null; 
     try { 
      con = DatabaseHelper.getConnection(); 
      cstmt = con.prepareCall("{?=call getProductQty(?)}"); 
      cstmt.registerOutParameter(1, java.sql.Types.INTEGER); 
      cstmt.setString(2, cmbProduct.getSelectedItem().toString()); 
      cstmt.execute(); 
      int output = cstmt.getInt(1); 
      lblQty.setText(String.valueOf(output)); 
      cstmt = con.prepareCall("{call avg_price(getProductId(?)}"); 
      cstmt.setString(1, cmbProduct.getSelectedItem().toString()); 
      cstmt.execute(); 
      rs = cstmt.getResultSet(); 
      while (rs.next()) { 
       lblPrice.setText(rs.getString(1)); 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       con.close(); 
       cstmt.close(); 
       rs.close(); 
      } catch (SQLException ex) { 
       ex.printStackTrace(); 

      } 

     } 
    } 
} 

私はJava Inventory Management Systemを作成しています。現在私はデータベースからデータを取得するプロセスに入っています。 ComboBoxのcmbProductItemStateChangedイベントにコードを記述しました。構文エラーはありません。 getProductQtyとgetProductIdは関数です。 avg_priceはプロシージャです。エラーとはこのJava Inventory Management System Codeでは、

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.Util.getInstance(Util.java:386) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) 
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503) 
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664) 
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794) 
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155) 
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1379) 
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:920) 
at IMS.Inventory.cmbProductItemStateChanged(Inventory.java:242) 
at IMS.Inventory.access$000(Inventory.java:19) 
at IMS.Inventory$1.itemStateChanged(Inventory.java:75) 
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223) 
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1271) 
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1330) 
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118) 
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93) 
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:576) 
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622) 
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:852) 
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290) 
at java.awt.Component.processMouseEvent(Component.java:6533) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:501) 
at java.awt.Component.processEvent(Component.java:6298) 
at java.awt.Container.processEvent(Container.java:2236) 
at java.awt.Component.dispatchEventImpl(Component.java:4889) 
at java.awt.Container.dispatchEventImpl(Container.java:2294) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
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:2746) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
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) 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
at IMS.Inventory.cmbProductItemStateChanged(Inventory.java:254) 
at IMS.Inventory.access$000(Inventory.java:19) 
at IMS.Inventory$1.itemStateChanged(Inventory.java:75) 
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223) 
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1271) 
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1330) 
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118) 
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93) 
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:576) 
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622) 
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:852) 
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290) 
at java.awt.Component.processMouseEvent(Component.java:6533) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:501) 
at java.awt.Component.processEvent(Component.java:6298) 
at java.awt.Container.processEvent(Container.java:2236) 
at java.awt.Component.dispatchEventImpl(Component.java:4889) 
at java.awt.Container.dispatchEventImpl(Container.java:2294) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
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:2746) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
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) 
+1

チェックする明白な最初のものは準備コールのstmtのためのあなたの構文です。エラーがあなたに伝えているものと思われます。 – Joe

+0

構文が間違っていますか? – Paawn12

+0

getProductQty SQLコードは正常に動作しましたが、avg_price SQLコードがエラーを表示しました。なぜですか? – Paawn12

答えて

0

行方不明閉じ括弧があります:

cstmt = con.prepareCall("{call avg_price(getProductId(?))}"); 
                 ^(added) 
+0

私の問題を解決しました。ありがとう – Paawn12

関連する問題