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

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;
	}

}

 

效果图:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值