select
top ? user0_.id as id0_,
user0_.username as username0_,
user0_.password as password0_,
user0_.createTime as createTime0_,
user0_.email as email0_,
user0_.phone as phone0_
from
t_user user0_那个top 后面怎么会出现一个?号,以前查询的时候都是具体数字!
业务逻辑:
public List<User> searchUsers(int offSet, int pageSize)
{ String selectHql = "from User";
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
List<User> users = session.createQuery(selectHql).setFirstResult(offSet).setMaxResults(pageSize).list();
session.close();
return users;
}UserAction:
public String user_list() throws MyException
{
//int pageSize = 5;
//int totalPages;
ActionContext act = ActionContext.getContext();
//List<User> users = this.um.searchUser();
List<User> usersPager = this.um.searchUsers(0,5);
//int totals = users.size();
//totalPages = (totals % pageSize == 0) ? (totals / pageSize) : (totals / pageSize) + 1 ;
//act.put("totalPages",totalPages);
act.put("users", usersPager);
return "user_list";
}如果:um.searchUsers(0,5); top 后面应该跟的是6 。
搞不懂了,望赐教!
top ? user0_.id as id0_,
user0_.username as username0_,
user0_.password as password0_,
user0_.createTime as createTime0_,
user0_.email as email0_,
user0_.phone as phone0_
from
t_user user0_那个top 后面怎么会出现一个?号,以前查询的时候都是具体数字!
业务逻辑:
public List<User> searchUsers(int offSet, int pageSize)
{ String selectHql = "from User";
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
List<User> users = session.createQuery(selectHql).setFirstResult(offSet).setMaxResults(pageSize).list();
session.close();
return users;
}UserAction:
public String user_list() throws MyException
{
//int pageSize = 5;
//int totalPages;
ActionContext act = ActionContext.getContext();
//List<User> users = this.um.searchUser();
List<User> usersPager = this.um.searchUsers(0,5);
//int totals = users.size();
//totalPages = (totals % pageSize == 0) ? (totals / pageSize) : (totals / pageSize) + 1 ;
//act.put("totalPages",totalPages);
act.put("users", usersPager);
return "user_list";
}如果:um.searchUsers(0,5); top 后面应该跟的是6 。
搞不懂了,望赐教!
解决方案 »
- SSH整合出现如下错误,求解?
- 拦截登录后返回被拦截前页面的方式有哪些?
- struts1标签功能用struts2标签实现
- J2EE案例英语版哪儿可以下呢?
- 请问大家用ejb3.0开发的时候, 用什么工具生成实体bean和dao啊
- lucene4.4复合模糊查询
- 在hibernate里面,看看下面这个简单的问题
- struts结构下,JSP页面上如何显示其对应的FormBean属性。
- 访问 JBOSS 他要我输入用户名和密码??为什么???
- 一个关于javabeans的问题!!大家帮忙看一下!
- 求解:InvalidClassException 和 UnmarshalException
- 帮帮看看哪里数组索引越界了
um.searchUsers(0,5);
这个方法的意思是取第一页 每页5条记录 对应着MS SQL 的语句里是前 1到5条。
如果你要找6到10条
那方法应该是
um.searchUsers(1,5);
org.hibernate.exception.SQLGrammarException: could not execute query
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 'limit 1 3 user0_.id as id0_, user0_.username as username0_, user0_.password as p' at line 1 高手,帮看下!
sql语法错误
不好意思,说错了,如果找6-10的记录那应该是第2页 方法应该是 um.searchUsers(5,5);setFirstResult(offSet)这里的offSet 的公式应该是 (n-1)*2 这里的2是每页多少条记录的数 。
n是多少页。
如果你要找第3页,那offSet应该是4。
@Test
public void testHibernate()
{
Configuration config = new Configuration().configure();
Session s = config.buildSessionFactory().openSession();
Query query = s.createQuery("from User");
query.setFirstResult(0); //从user表的第一条记录开始取
query.setMaxResults(2); //user表不只2条记录,我取2条特列
List<User> users = query.list();
for (int i=0;i<users.size();i++)
{
System.out.println(users.get(i).getId());;
}
s.close(); }后台显示SQL语句: (注意Top后面的问号)
Hibernate:
select
top ? user0_.id as id0_,
user0_.username as username0_,
user0_.password as password0_,
user0_.createTime as createTime0_,
user0_.email as email0_,
user0_.phone as phone0_
from
t_user user0_异常:
org.hibernate.exception.SQLGrammarException: could not execute query
。
Caused by: java.sql.SQLException: 第 1 行: '@P0' 附近有语法错误。我原先以为是数据问题,现在从MYSQL换成Oracle到SQLserver 这个错误依旧。
疑惑中.....
Hibernate的dialect的设置问题。不同的数据设置的方言不同。RDBMS 方言
DB2 org.hibernate.dialect.DB2Dialect
DB2 AS/400 org.hibernate.dialect.DB2400Dialect
DB2 OS390 org.hibernate.dialect.DB2390Dialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect