hql mysql查询语句_Hibernate查询语言(HQL)

Hibernate查询语言(HQL)与SQL(结构化查询语言)相同,但不依赖于数据库表。 我们在HQL中使用类名,而不是表名。 所以是数据库独立的查询语言。

HQL的优点

HQL有很多优点。 它们如下:

数据库独立

支持多态查询

易于Java程序员学习

查询接口

它是一个面向对象的Hibernate Query表示。 Query的对象可以通过Session接口调用createQuery()方法。

查询接口提供了很多方法。下面给出了一些最常用的方法:

public int executeUpdate() 用于执行更新或删除查询。

public List list() 将关系的结果作为列表返回。

public Query setFirstResult(int rowno) 指定从哪里检索记录的行号。

public Query setMaxResult(int rowno) 指定从关系(表)中检索记录的行号。

public Query setParameter(int position, Object value) 它将该值设置为JDBC样式查询参数。

public Query setParameter(String name, Object value) 它将该值设置为命名查询参数。

HQL获取所有记录的示例

Query query=session.createQuery("from Emp");//here persistent class name is Emp

List list=query.list();

HQL获取分页记录的示例

Query query=session.createQuery("from Emp");

query.setFirstResult(5);

query.setMaxResult(10);

List list=query.list();//will return the records from 5 to 10th number

HQL更新查询示例

Transaction tx=session.beginTransaction();

Query q=session.createQuery("update User set name=:n where id=:i");

q.setParameter("n","Udit Kumar");

q.setParameter("i",111);

int status=q.executeUpdate();

System.out.println(status);

tx.commit();

HQL删除查询示例

Query query=session.createQuery("delete from Emp where id=100");

//specifying class name (Emp) not tablename

query.executeUpdate();

HQL与聚合函数

可以通过HQL调用avg(),min(),max()等聚合函数。 我们来看一些常见的例子:

获得所有员工总薪酬的例子

Query q=session.createQuery("select sum(salary) from Emp");

List list=q.list();

System.out.println(list.get(0));

获得员工最高工资的例子

Query q=session.createQuery("select max(salary) from Emp");

获得员工最低工资的例子

Query q=session.createQuery("select min(salary) from Emp");

计算雇员ID总数的示例

Query q=session.createQuery("select count(id) from Emp");

获得员工的平均工资的例子

Query q=session.createQuery("select avg(salary) from Emp");

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值