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

HQL查询数据

简单查询

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();

连接查询

QBC查询数据

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

QBC主要由Criteria接口实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值