浏览 2548 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-11
增加参数为分两种,一中是占位符方式: /** * 占位符参数 */ @SuppressWarnings("unchecked") public static void test4(){ Session session = HibernateSessionFactory.currentSession(); String hql = "from User u where u.id=?"; Query query = session.createQuery(hql); query.setParameter(0, 2); List<User> user = query.list(); System.out.println("------------SQL执行完毕---------------"); for (User us : user) { System.out.println(us.getName()); } }
注意是从 0 开始,如果你的 id 是整型,那么必须设置一个整数,如果你设置参数是 "2" 是不行的!
也可以使用命名参数: /** * 命名参数 */ @SuppressWarnings("unchecked") public static void test5(){ Session session = HibernateSessionFactory.currentSession(); String hql = "from User u where u.id=:id"; Query query = session.createQuery(hql); query.setInteger("id", 2); List<User> user = query.list(); System.out.println("------------SQL执行完毕---------------"); for (User us : user) { System.out.println(us.getName()); } }
使用命名参数感觉上是比较直观的
分页的话比较简单,设置两个参数即可: /** * 分页 */ @SuppressWarnings("unchecked") public static void test6(){ Session session = HibernateSessionFactory.currentSession(); String hql = "from User u"; Query query = session.createQuery(hql); query.setFirstResult(0); query.setMaxResults(5); List<User> user = query.list(); System.out.println("------------SQL执行完毕---------------"); for (User us : user) { System.out.println(us.getName()); } }
至于分组和排序的话,和你写SQL是一样的,只是这里写的是实体的属性名字: /** * 分组排序 */ @SuppressWarnings("unchecked") public static void test7(){ Session session = HibernateSessionFactory.currentSession(); String hql = "from User u group by name order by id desc"; Query query = session.createQuery(hql); List<User> user = query.list(); System.out.println("------------SQL执行完毕---------------"); for (User us : user) { System.out.println(us.getName()); } }
以上方法仅供参考! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |