catch (HibernateException e2) 把异常都catch catch (Exception e)看看什么问题

解决方案 »

  1.   

    WARN [http-8080-Processor25] (JDBCExceptionReporter.java:38) - SQL Error: 1064, SQLState: 42000
    ERROR [http-8080-Processor25] (JDBCExceptionReporter.java:46) - Syntax error or access violation message from server: "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 '' at line 1"
    ERROR [http-8080-Processor25] (JDBCException.java:38) - Could not execute query
    java.sql.SQLException: Syntax error or access violation message from server: "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 '' at line 1"//这里说SQL语句有错,不知道哪里有错?
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1586)
    at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
    at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:800)
    at net.sf.hibernate.hql.QueryTranslator.iterate(QueryTranslator.java:860)
    at net.sf.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1608)
    at net.sf.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1581)
    at net.sf.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1573)
    at test.dao.user.UserDaoImpl.queryTotalPage(UserDaoImpl.java:88)
    at test.service.user.UserServiceImpl.queryTotalPage(UserServiceImpl.java:52)
    at test.web.action.UserAction.doQuery(UserAction.java:146)
    at test.web.action.UserAction.execute(UserAction.java:23)
    at 
    ....
    DEBUG [http-8080-Processor25] (SessionFactoryUtils.java:348) - Closing Hibernate session
    DEBUG [http-8080-Processor25] (SessionImpl.java:573) - closing session
    DEBUG [http-8080-Processor25] (SessionImpl.java:3332) - disconnecting session
    DEBUG [http-8080-Processor25] (SessionImpl.java:585) - transaction completion
    DEBUG [http-8080-Processor25] (SessionFactoryUtils.java:183) - Opening Hibernate session
    DEBUG [http-8080-Processor25] (SessionImpl.java:555) - opened session
    DEBUG [http-8080-Processor25] (SessionImpl.java:1526) - find: form user
    DEBUG [http-8080-Processor25] (QueryParameters.java:109) - named parameters: {}
    DEBUG [http-8080-Processor25] (QueryTranslator.java:147) - compiling query
    net.sf.hibernate.QueryException: query must begin with SELECT or FROM: form [form user]//这里意思是必须以form 或 select开头,程序中的语句中就是以form开头的啊??
    at net.sf.hibernate.hql.ClauseParser.token(ClauseParser.java:84)
    at net.sf.hibernate.hql.PreprocessingParser.token(PreprocessingParser.java:123)
    at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:29)
    at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
    at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
    at net.sf.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:293)
    at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1561)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1532)
    at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
    at test.dao.user.UserDaoImpl.query(UserDaoImpl.java:67)
    at test.service.user.UserServiceImpl.query(UserServiceImpl.java:48)
      

  2.   

    我人为这有错
                q = session.createQuery("form user");
                q.setFirstResult(PERPAGE_NUM * (page -1));
                q.setMaxResults(PERPAGE_NUM);
      

  3.   

    如果类名是 User , 那么写 from User , 大写
    另外, user在某些数据库中是关键字,建议换掉
      

  4.   

    q = session.createQuery("form user");
    ==>
      q = session.createQuery("from user");