java - My program works as intended I am removing a record from a data base and it works except for an Invalid column index exception -


this sql statement. error shows "pstat.setstring(2, rp.getlegaldescription());"

private static final string remove_object = "delete res id = ?"; 

this method removing row.

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; } 

and method take out of database

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); } 

lastly error log looks follows. thank reading. continue try , solve this gets posted

java.sql.sqlexception: invalid column index sucessful remove @ oracle.jdbc.driver.oraclepreparedstatement.setstringinternal(oraclepreparedstatement.java:5168) @ oracle.jdbc.driver.oraclepreparedstatement.setstring(oraclepreparedstatement.java:5156) @ oracle.jdbc.driver.oraclepreparedstatementwrapper.setstring(oraclepreparedstatementwrapper.java:278) @ saitmls.persistance.property.residentialpropertybroker.deletepreparedstatement(residentialpropertybroker.java:181) @ saitmls.persistance.property.residentialpropertybroker.remove(residentialpropertybroker.java:455) @ saitmls.problemdomain.property.userinterface$2.actionperformed(userinterface.java:705) @ javax.swing.abstractbutton.fireactionperformed(abstractbutton.java:2022) @ javax.swing.abstractbutton$handler.actionperformed(abstractbutton.java:2348) @ javax.swing.defaultbuttonmodel.fireactionperformed(defaultbuttonmodel.java:402) @ javax.swing.defaultbuttonmodel.setpressed(defaultbuttonmodel.java:259) @ javax.swing.plaf.basic.basicbuttonlistener.mousereleased(basicbuttonlistener.java:252) @ java.awt.component.processmouseevent(component.java:6533) @ javax.swing.jcomponent.processmouseevent(jcomponent.java:3324) @ java.awt.component.processevent(component.java:6298) @ java.awt.container.processevent(container.java:2236) @ java.awt.component.dispatcheventimpl(component.java:4889) @ java.awt.container.dispatcheventimpl(container.java:2294) @ java.awt.component.dispatchevent(component.java:4711) @ java.awt.lightweightdispatcher.retargetmouseevent(container.java:4888) @ java.awt.lightweightdispatcher.processmouseevent(container.java:4525) @ java.awt.lightweightdispatcher.dispatchevent(container.java:4466) @ java.awt.container.dispatcheventimpl(container.java:2280) @ java.awt.window.dispatcheventimpl(window.java:2746) @ java.awt.component.dispatchevent(component.java:4711) @ java.awt.eventqueue.dispatcheventimpl(eventqueue.java:758) @ java.awt.eventqueue.access$500(eventqueue.java:97) @ java.awt.eventqueue$3.run(eventqueue.java:709) @ java.awt.eventqueue$3.run(eventqueue.java:703) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(protectiondomain.java:76) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(protectiondomain.java:86) @ java.awt.eventqueue$4.run(eventqueue.java:731) @ java.awt.eventqueue$4.run(eventqueue.java:729) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(protectiondomain.java:76) @ java.awt.eventqueue.dispatchevent(eventqueue.java:728) @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:201) @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:116) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:105) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:101) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:93)    @ java.awt.eventdispatchthread.run(eventdispatchthread.java:82) 

you need pass id alone preparedstatement object because sql (delete res id = ?) accepts 1 parameter (i.e., id).

so keep 1 (id) parameter (shown below) in deletepreparedstatement method , remove rest of pstat.setstring, etc.. parameters:

 pstat.setlong(1, rp.getid()); 

as side note, suggest close preparedstatement objects in block or use try-with-resources.


Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -