0
這是sql語句。該錯誤顯示爲「pStat.setString(2,rp.getLegalDescription());」我的程序按預期工作我正在從數據庫中刪除一條記錄,除了無效的列索引異常外,它正常工作
private static final String REMOVE_OBJECT = "DELETE FROM RES where ID = ?";
這是刪除行的方法。
private boolean deletePreparedStatement(ResidentialProperty rp)
{
try
{
/*
* (long id, java.lang.String legalDescription, java.lang.String address, java.lang.String quadrant, java.lang.String zone, double askingPrice, java.lang.String comments, double area, double bathrooms, int bedrooms, char garage)
*/
PreparedStatement pStat = conn.prepareStatement(REMOVE_OBJECT);
pStat.setLong(1, rp.getId());
pStat.setString(2, rp.getLegalDescription());
pStat.setString(3, rp.getAddress());
pStat.setString(4, rp.getQuadrant());
pStat.setString(5, rp.getZone());
pStat.setDouble(6, rp.getAskingPrice());
pStat.setString(7, rp.getComments());
pStat.setDouble(8, rp.getArea());
pStat.setDouble(9, rp.getBathrooms());
pStat.setInt(10, rp.getBedrooms());
pStat.setString(11, rp.getGarage()+"");
pStat.setLong(12, rp.getId());
int rowCount = pStat.executeUpdate();
System.out.println("row count = "+ rowCount);
pStat.close();
return rowCount == 1;
}
catch(SQLException e)
{
e.printStackTrace();
}
return false;
}
這是真正把它拿出來的數據庫
public boolean remove(Object o)
{
ResidentialProperty rp = (ResidentialProperty)o;
try
{
PreparedStatement pstat = conn.prepareStatement(REMOVE_OBJECT);
pstat.setLong(1, rp.getId());
rs = pstat.executeQuery();
rs.close();
pstat.close();
}catch(SQLException e)
{
e.printStackTrace();
}
return deletePreparedStatement(rp);
}
的方法,最後的錯誤日誌如下所示。非常感謝您的閱讀。我會繼續嘗試解決這個,因爲這被貼
java.sql.SQLException: Invalid column index
sucessful remove
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5168)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:5156)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:278)
at saitMLS.persistance.property.ResidentialPropertyBroker.deletePreparedStatement(ResidentialPropertyBroker.java:181)
at saitMLS.persistance.property.ResidentialPropertyBroker.remove(ResidentialPropertyBroker.java:455)
at saitMLS.problemDomain.property.UserInterface$2.actionPerformed(UserInterface.java:705)
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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
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)
非常感謝你,你快!我感謝幫助! –
如果有幫助,您可以點名並接受我的答案 – developer