org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [vo.Soil]; SQL [insert into soil.soil (province, city, area, minutearea, soildeep, experunit, experperson, assessor, assessorunit, storearea, soiltpte, soilhumidity, granule, soiltype, phvalue, Cd, Hg, As, Cu, Pb, Cr, Zn, Ni, Se, lll, ddt, rank, del) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not insert: [vo.Soil]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)
at dao.BaseDAO.save(BaseDAO.java:33)
at action.soil.SoilAddAction.execute(SoilAddAction.java:342)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [vo.Soil]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2176)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2656)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 69 more

解决方案 »

  1.   

    Caused by: 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 'As, Cu, Pb, Cr, Zn, Ni, Se, lll, ddt, rank, del) values ('110000', '110100', '11' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.Util.getInstance(Util.java:381)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2022)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1940)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1925)
    at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
    ... 87 more
      

  2.   

    package action.soil;import vo.Equipment;
    import vo.Soil;import base.BaseAction;import com.opensymphony.xwork2.ActionSupport;public class SoilAddAction extends BaseAction {

    String province;
    String city;
    String area;
    String minutearea;
    String experunit;
    String experperson;
    String assessor;
    String assessorunit;
    String storearea;
    String soildeep;
    String soiltype;
    String soilhumidity;
    String soiltpte;
    String granule;
    String phvalue;
    String lll;
    String ddt;
    String Cd;
    String Hg;
    String As;
    String Cu;
    String Pb;
    String Cr;
    String Zn;
    String Ni;
    String Se;

    public String getSoiltype() {
    return soiltype;
    } public void setSoiltype(String soiltype) {
    this.soiltype = soiltype;
    } public String getSoilhumidity() {
    return soilhumidity;
    } public void setSoilhumidity(String soilhumidity) {
    this.soilhumidity = soilhumidity;
    } public String getSoiltpte() {
    return soiltpte;
    } public void setSoiltpte(String soiltpte) {
    this.soiltpte = soiltpte;
    } public String getGrnule() {
    return granule;
    } public void setGrnule(String granule) {
    this.granule = granule;
    } public String getProvince() {
    return province;
    } public void setProvince(String province) {
    this.province = province;
    } public String getCity() {
    return city;
    } public void setCity(String city) {
    this.city = city;
    } public String getArea() {
    return area;
    } public void setArea(String area) {
    this.area = area;
    } public String getMinutearea() {
    return minutearea;
    } public void setMinutearea(String minutearea) {
    this.minutearea = minutearea;
    } public String getExperunit() {
    return experunit;
    } public void setExperunit(String experunit) {
    this.experunit = experunit;
    } public String getExperperson() {
    return experperson;
    } public void setExperperson(String experperson) {
    this.experperson = experperson;
    } public String getAssessor() {
    return assessor;
    } public void setAssessor(String assessor) {
    this.assessor = assessor;
    } public String getAssessorunit() {
    return assessorunit;
    } public void setAssessorunit(String assessorunit) {
    this.assessorunit = assessorunit;
    } public String getStorearea() {
    return storearea;
    } public void setStorearea(String storearea) {
    this.storearea = storearea;
    } public String getSoildeep() {
    return soildeep;
    } public void setSoildeep(String soildeep) {
    this.soildeep = soildeep;
    } public String getGranule() {
    return granule;
    } public void setGranule(String granule) {
    this.granule = granule;
    } public String getPhvalue() {
    return phvalue;
    } public void setPhvalue(String phvalue) {
    this.phvalue = phvalue;
    } public String getLll() {
    return lll;
    } public void setLll(String lll) {
    this.lll = lll;
    } public String getDdt() {
    return ddt;
    } public void setDdt(String ddt) {
    this.ddt = ddt;
    } public String getCd() {
    return Cd;
    } public void setCd(String cd) {
    Cd = cd;
    } public String getHg() {
    return Hg;
    } public void setHg(String hg) {
    Hg = hg;
    } public String getAs() {
    return As;
    } public void setAs(String as) {
    As = as;
    } public String getCu() {
    return Cu;
    } public void setCu(String cu) {
    Cu = cu;
    } public String getPb() {
    return Pb;
    } public void setPb(String pb) {
    Pb = pb;
    } public String getCr() {
    return Cr;
    } public void setCr(String cr) {
    Cr = cr;
    } public String getZn() {
    return Zn;
    } public void setZn(String zn) {
    Zn = zn;
    } public String getNi() {
    return Ni;
    } public void setNi(String ni) {
    Ni = ni;
    } public String getSe() {
    return Se;
    } public void setSe(String se) {
    Se = se;
    } public String execute() { System.out.println(getCd()+"~~~CD");

    Soil s=new Soil();
    // s.setArea(getArea());
    // s.setAs(getAs());
    // s.setAssessor(getAssessor());
    // s.setAssessorunit(getAssessorunit());
    // s.setCd(getCd());
    // s.setCity(getCity());
    // s.setCr(getCr());
    // s.setCu(getCu());
    // s.setDdt(getDdt());
    // s.setExperperson(getExperperson());
    // s.setExperunit(getExperunit());
    // s.setGranule(getGranule());
    // s.setHg(getHg());
    // s.setLll(getLll());
    // s.setMinutearea(getMinutearea());
    // s.setNi(getNi());
    // s.setPb(getPb());
    // s.setPhvalue(getPhvalue());
    // s.setProvince(getProvince());
    // s.setSe(getSe());
    // s.setSoildeep(getSoildeep());
    // s.setSoilhumidity(getSoilhumidity());
    // s.setSoiltpte(getSoiltpte());
    // s.setSoiltype(getSoiltype());
    // s.setStorearea(getStorearea());
    // s.setZn(getZn());
    System.out.println(lll);
    copy(s,this);
    int cua=Integer.parseInt(Cu);
    int cda=Integer.parseInt(Cd);
    int hga=Integer.parseInt(Hg);
    int asa=Integer.parseInt(As);
    int pba=Integer.parseInt(Pb);
    int cra=Integer.parseInt(Cr);
    int zna=Integer.parseInt(Zn);
    int nia=Integer.parseInt(Ni);
    int lllt=Integer.parseInt(lll);
    int ddtt=Integer.parseInt(ddt);
    int phvaluet=Integer.parseInt(phvalue);
    System.out.println(lllt);
       if(cda<=0.2){
       if(hga<=0.15){
    if(asa<=15){
    if(cua<=35){
    if(pba<=35){
    if(cra<=90){
    if(zna<=100){if(nia<=40){if(lllt<=0.05){if(ddtt<=0.05){s.setRank("一级");}}}}}}}}}}
       else{if(phvaluet<6.5){
       if(cda<=0.3){
       if(hga<=0.3){if(asa<=30){if(cua<=50){if(pba<=250){if(cra<=250){if(zna<=200){if(nia<=40){if(lllt<=0.5){if(ddtt<=0.5){s.setRank("二级");}}}}}}}}}
       }
       }
       else{
       if(phvaluet<=7.5&&phvaluet>=6.5){if(cda<=0.3){if(hga<=0.5){if(asa<=25){if(cua<=100){
     if(cra<=300){  if(pba<=300){if(zna<=250){if(nia<=50){if(lllt<=0.5){if(ddtt<=0.5){s.setRank("二级");}}}}}}
       }}}}}
       else{
       if(phvaluet>7.5){if(cda<=0.6){if(hga<=1){if(asa<=20){if(cua<=100){
       if(pba<=350){if(cra<=350){if(zna<=300){if(nia<=60){if(lllt<=0.5){if(ddtt<=0.5){s.setRank("二级");}}}}
       }}}}}}}
       else{
       if(phvaluet>6.5){if(cda<=1){if(hga<=1.5){if(asa<=30){if(cua<=400){
       if(pba<=500){if(cra<=400){if(zna<=500){if(nia<=200){if(lllt<=1){if(ddtt<=1){s.setRank("三级");}}}}
       }}}}}}}else{s.setRank("超标");}
       }
       }
       }
       }
       System.out.println(s);
       
     int j=b.save(s);
      String msg=j>0?"/equipment/add_equpiment.jsp":"soil/add_soil.jsp";
      request.setAttribute("msg", msg); return SUCCESS;
    }
    }