package cn.test;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import cn.entity.User;

public class PageTest {
	// 进行一下查询操作
	// 在查询操作中要使用分页 命名参数 排序技术
	public static void main(String[] args) {
		Configuration cfg = new Configuration().configure();
		// SessionFactory = 管理连接工厂
		SessionFactory sf = cfg.buildSessionFactory();
		Session session = sf.openSession();
		// String hql = "from User"; --简单分页
		String hql = "from User where name=:name and age=:age order by id asc";// 排序技术
		int curpage = 1;// 当前页
		int pagesize = 2;// 每页显示数

		List<User> users = find(session, hql, curpage, pagesize);
		for (User user : users) {
			System.out.println(user.getName() + "\t" + user.getId() + "\t"
					+ user.getAge());
		}
	}

	public static List<User> find(Session session, String strHQL, int offset,
			int pagesize) {
		List<User> list = null;
		try {
			Query query = session.createQuery(strHQL);
			query.setString("name", "何开");// 命名参数
			query.setInteger("age", 25);// 命名参数
			if (offset != 0 && pagesize != 0) {
				query.setFirstResult((offset - 1) * pagesize);
				query.setMaxResults(pagesize);
			}
			list = query.list();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return list;
	}

}

 

效果图:

Hibernate 在查询操作中要使用分页+命名参数+排序技术_User