首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

net.sf.hibernate.JDBCException: Could not execute query

2011-12-11 
不知道是什么问题,高手请进!登录验证总调不通,我用的是struts+hibernate!调试错误信息如下;begintxnet.sf.

不知道是什么问题,高手请进!
登录验证总调不通,我用的是struts+hibernate!
调试错误信息如下;
begin   tx
net.sf.hibernate.JDBCException:   Could   not   execute   query
at   net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1515)
at   net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
at   ems.emsbean.login.LoginAction.execute(LoginAction.java:53)
at   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at   weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at   weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
at   weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at   weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at   weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
at   weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at   weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at   weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused   by:   java.sql.SQLException:   ORA-00936:   缺少表达式

at   oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at   oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
at   oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at   oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:626)
at   oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:182)
at   oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:500)
at   oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:942)
at   oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:532)
at   oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1037)
at   oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2905)
at   oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2946)
at   com.mchange.v2.c3p0.impl.C3P0PreparedStatement.executeQuery(C3P0PreparedStatement.java:188)
at   com.mchange.v2.c3p0.impl.C3P0PooledConnection$2.executeQuery(C3P0PooledConnection.java:473)
at   net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
at   net.sf.hibernate.loader.Loader.getResultSet(Loader.java:795)
at   net.sf.hibernate.loader.Loader.doQuery(Loader.java:189)
at   net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
at   net.sf.hibernate.loader.Loader.doList(Loader.java:950)
at   net.sf.hibernate.loader.Loader.list(Loader.java:941)
at   net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:834)
at   net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1512)
...   18   more
<2007-7-22   下午09时23分31秒   CST>   <Error>   <HTTP>   <BEA-101020>   <[ServletContext(id=9114403,name=emsweb,context-path=/emsweb)]   Servlet   failed   with   Exception


java.lang.NullPointerException
at   org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:374)
at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at   weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at   weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at   weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
at   weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at   weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at   weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
at   weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at   weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at   weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>  



User.hbm.xml文件
<?xml   version= '1.0 '   encoding= 'utf-8 '?>
<!DOCTYPE   hibernate-mapping
        PUBLIC   "-//Hibernate/Hibernate   Mapping   DTD//EN "
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd ">

<hibernate-mapping>
      <class   name= "ems.emsbean.hibernate.User "   table= "user ">
      <id   name= "id "   type= "integer ">
            <column   name= "id "   />
      <generator   class= "native "/>
      </id>

      <property   name= "name "   type= "string ">
            <column   name= "name "   />
      </property>

      <property   name= "engine_type "   type= "string ">
                    <column   name= "engine_type "   />
      </property>

    <property   name= "password "   type= "string ">
                    <column   name= "password "   />
    </property>
    </class>

</hibernate-mapping>


user.java文件
package   ems.emsbean.hibernate;

public   class   User   implements   java.io.Serializable{
    public   User()   {
    }
            //定义用户ID     分别对应数据表中相应的字段
            private   Integer   id;
            //定义用户名
            private   String   name;


            //定义用户类型
            private   String   engine_type;
            //定义用户密码
            private   String   password;


            public   Integer   getId(){
                return   id;
            }
            public   void   setId(Integer   id){
                this.id=id;
            }


          public   String   getName(){
              return   name;
          }
          public   void   setName(String   name){
              this.name=name;
          }

          public   String   getEngine_type(){
              return   engine_type;
          }
          public   void   setEngine_type(String   engine_type){
              this.engine_type=engine_type;
          }

          public   String   getPassword(){
              return   password;
          }
          public   void     setPassword(String   password){
              this.password=password;
          }

}


[解决办法]
str = " from user where user.name=:stuName and user.password=:stuPassword ";
--------------------------------
好久没用过hibernate了,不过,这个HQL语句 "from user "肯定不对了,hibernate里的from肯定是个实体类了,不是你数据库里的表名,应该为 "from User... "

[解决办法]
user在oracle 中 为关键字不能使用!~
你用的什么数据库啊 ?

热点排行