HQL查询



HQL查询。

对象Plate(板块)映射到数据库中的表(plate)如下:

——————————————————————————–

1.查询出某表的全部数据:

Query q = session.createQuery(“from Plate”);
输出: 模板1;模板2;模板3,模板4;模板5

2.带1个条件查询:

Query q = session.createQuery(“from Plate p where p.name > ‘板块3′ “);
输出: 模板4,模板5

3.将查询出的结果进行逆向排序:


Query q = session.createQuery(“select p from Plate p order by p.name desc”);
输出: 模板5;模板4;模板3,模板2;模板1

4.多个查询条件,要熟悉setParameter()和setInteger()2个方法的用法:

(“from Plate p where p.name > ? and p.id < ? ");
q.setParameter(0, "板块2");指定第一个条件'?'所代表的参数
q.setParameter(1, 4);指定第二个条件'?'所代表的参数
输出: 模板3

5.分页操作:

Query q = session.createQuery("from Plate");
q.setMaxResults(3); 设置每页最大显示的项数
q.setFirstResult(0); 设置显示第一条记录的开始位置
输出: 模板1;模板2;模板3,

6.查询出多个字段:注意这种遍历的方式,(类型)

Query q = session.createQuery("select p.id , p.name from Plate p");
List plates = (List)q.list();
for(Object[] p : plates){
System.out.println(p[0] + “-” + p[1]);

输出:ID和name