第六节 使用HQL和QBC查询数据

匿名 (未验证) 提交于 2019-12-03 00:34:01

简单查询

from 实体类名
as关键字可以省略

查询所有学生,并按照id升序排列

from Student as stu order by stu.id asc

属性查询

查询学生的姓名和年龄

select stu.name,stu.age from Student as stu

聚集函数

select count(stu) from Student stu

select ave(stu.score) from Student stu

分组查询

select employee.dept.name,count(*) from Employee as employee group by employee.dept

动态查询

将结果封装成对象

select new Person(stu.name,stu.age) from Student stu;

在项目中需要有Person类,同时Person类中有Person(String name,Integer age)构造函数

分页查询

public void pagedSearch(int pageIndex,int pageSize){     String hql="from Student";     Query query = session.createQuery(hql);     int startIndex = (pageIndex-1)*pageSize;      query.setFirstResult(startIndex);//设定从那个对象开始     query.setMaxResults(pageSize);//设置一次返回多少对象      List list = query.list();  }

条件查询

//简单参数 String hql="FROM User where id=?"; User user= (User)session.createQuery(hql)         .setParameter(0, 2).list();  //标签参数 String hql="FROM User where id = :id"; List<User> list= session.createQuery(hql)         .setParameterList("id", 2)         .list();  //集合参数 String hql="FROM User where id IN (:ids)";  List<User> list= session.createQuery(hql)         .setParameterList("ids", new Object[]{1,3,4})         .list();

连接查询

使用HQL查询,和sql查询类似,但是仍然需要编写各种sql语句,很是繁琐

QBC主要由Criteria接口实现

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!