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)
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)
q = session.createQuery("form user");
q.setFirstResult(PERPAGE_NUM * (page -1));
q.setMaxResults(PERPAGE_NUM);
另外, user在某些数据库中是关键字,建议换掉
==>
q = session.createQuery("from user");