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;
}
}
效果图: