Hibernate HQL语句

案例1、 查询所有数据

	@Test
	public void test1(){
		String hql = "from Privilege";
		Query query = session.createQuery(hql);
		List list = query.list();
		System.out.println(Arrays.toString(list.toArray()));
	}
	

链式写法:

	@Test
	public void test3(){
		System.out.println(Arrays.toString(session.createQuery("from Privilege").list().toArray()));
	}

PS:from 后面跟的是 类名,不是表名。同样 再写 hql 语句时用的不是 字段名 而是 属性名


案例2、条件查询

	@Test
	public void test4(){
		String hql = "from Privilege p where p.id > :id ";
		Query query = session.createQuery(hql).setParameter("id", 3);
		List list = query.list();
		System.out.println(Arrays.toString(list.toArray()));
	}

PS:本次实验使用的hibernate 5.3版本, 原本打算使用 ? 号的方式设置参数,但后来报错了,从报错信息中看出,应该是这个版本不支持 ? 号方式传入参数


案例3、分页查询

	@Test
	public void test5(){
		int currentPage = 2;//当前页码
		int pageSize = 3;//每页 3 条
		
		String hql = "from Privilege";
		Query query = session.createQuery(hql);
		
		query.setFirstResult((currentPage - 1) * pageSize);
		query.setMaxResults(pageSize);
		
		List list = query.list();
		System.out.println(Arrays.toString(list.toArray()));
	}

 

 

 

你可能感兴趣的:(hibernate)