gpt4 book ai didi

java - 使用准备好的语句 INSERT INTO 时出现 ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 16:19:34 26 4
gpt4 key购买 nike

我正在尝试将这些值插入到数据库的表中,所有值都排列整齐并且拼写和排序正确,这段代码一直在工作,但我一生都无法弄清楚为什么现在不行。也许有些愚蠢的事情,但我已经用细齿梳子一遍又一遍地梳理过。所有变量都有值。

    public void addNewProduct(int uuid, String location, String product, String category, int items, int numberOfBoxes, double price, String supplier, String value) throws SQLException {

try {

dbCon.NSStock();

dbAction = "INSERT INTO StockList (uuid, location, product, category, items, numberOfBoxes, price, supplier, value) VALUES (?,?,?,?,?,?,?,?,?)";

ps = dbCon.NSStock().prepareStatement(dbAction);


if(uuid == 0) {

uuid = createUUID();

}

ps.setInt(1, uuid);
ps.setString(2, location);
ps.setString(3, product);
ps.setString(4, category);
ps.setInt(5, items);
ps.setInt(6, numberOfBoxes);
ps.setDouble(7, price);
ps.setString(8, supplier);
ps.setString(9, value);

ps.executeUpdate();

JOptionPane.showMessageDialog(null, "Stock List Updated");

}catch(SQLException e) {

e.printStackTrace();

}finally{

dbCon.NSStock().close();

}
}

//异常详情

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at org.sqlite.core.CorePreparedStatement.batch(CorePreparedStatement.java:130)
at org.sqlite.jdbc3.JDBC3PreparedStatement.setInt(JDBC3PreparedStatement.java:329)
at nightshelter.Stock.addNewProduct(Stock.java:84)
at nightshelter.NightShelterGUI.addNewProductBTNActionPerformed(NightShelterGUI.java:2587)
at nightshelter.NightShelterGUI.access$000(NightShelterGUI.java:27)
at nightshelter.NightShelterGUI$1.actionPerformed(NightShelterGUI.java:487)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6636)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6401)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2762)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

最佳答案

我将 if 语句移出了 try/catch,现在它可以工作了。

关于java - 使用准备好的语句 INSERT INTO 时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62309529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com