V512里的那个STRUTS做的留言本可以插入数据但是查看留言本时会出现
java.sql.SQLException: 违反协议 Query: select * from guestbook order by id desc Parameters: []
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:540)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:397)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:486)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:505)
at com.v512.guestbook.web.action.ReadAction.execute(ReadAction.java:52)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.v512.example.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20)
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:228)
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:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
不知道出现了什么错误??

解决方案 »

  1.   

    你将sql语句改为HQL语句试试看
      

  2.   


    插入:
    String sql = "insert into guestbook (id,name,email,url,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";
    读取
    String sql="select * from guestbook order by id desc";
      

  3.   

    你这给别人看,怎么能帮你解决问题啦, 
      把源码也给出来吧, 由其是ACTION里面的代码
      

  4.   


     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) {
    String hql="from Guestbook";

    try {
        Context context = new InitialContext();
        DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/guestbook");
        QueryRunner qr = new QueryRunner(ds);
       List list=(List) qr.query(hql, new BeanListHandler(Guestbook.class));
       request.setAttribute("guestbook.display.list", list);     
        
    } catch (NamingException e) {
        e.printStackTrace();
    } catch (SQLException e) {    
        e.printStackTrace();
    }

    return mapping.findForward("guestbook.display");
        }
      

  5.   


    DynaValidatorForm f = (DynaValidatorForm) form;
    String sql = "insert into guestbook (id,name,email,url,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:MM:ss");

    String params[] = { (String) f.get("name"), (String) f.get("email"), (String) f.get("url"),
    (String) f.get("title"), (String) f.get("content"),sdf.format(new Date()) };
    try {
        Context context = new InitialContext();
        DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/guestbook");
        QueryRunner qr = new QueryRunner(ds);
        qr.update(sql, params);
    } catch (NamingException e) {
        e.printStackTrace();
    } catch (SQLException e) {    
        e.printStackTrace();
    }
    return mapping.findForward("guestbook.read");    }
      

  6.   


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config>
      <form-beans >
        <form-bean name="inputForm" type="org.apache.struts.validator.DynaValidatorForm">
          <form-property name="title" type="java.lang.String" />
          <form-property name="content" type="java.lang.String" />
          <form-property name="url" type="java.lang.String" />
          <form-property name="email" type="java.lang.String" />
          <form-property name="name" type="java.lang.String" />
        </form-bean>  </form-beans>  <global-exceptions />
      <global-forwards >
        <forward name="guestbook.display" path="/display.jsp" />
        <forward
          name="guestbook.read"
          path="/read.do"
          redirect="true" />  </global-forwards>  <action-mappings >
        <action
          attribute="inputForm"
          input="/input.jsp"
          name="inputForm"
          path="/input"
          scope="request"
          type="com.v512.guestbook.web.action.InputAction" />
        <action
          path="/read"
          type="com.v512.guestbook.web.action.ReadAction"
          validate="false" />  </action-mappings>
       <message-resources parameter="com.v512.guestbook.web.ApplicationResources" />  
       <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
       <set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validations.xml" />
       </plug-in>
     
    </struts-config>