分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Hibernate学习笔记(5)---Query接口

发布时间:2023-09-06 01:13责任编辑:熊小新关键词:Hibernate

Hibernate中具有三种检索方式(HQL,QBC,SQL)

Query接口

一个查询接口,用于向数据库中查询对象。并控制执行查询的过程。Query接口内封装了一个HQL查询语句。

举个栗子

//查询持久化类user

Session session = sessionFactory.openSession(); ??//创建session实例
String hql ="from user as u where age>18"; ???//HQL语句,as别名可以省略不写Query query = session.createQuery(hql);//创建query实例List users = query.list();// 返回list集合

  HQL运算符大致上与SQL的相似

=等于<>不等于
>大于<小于
>=大于等于<=小于等于
is null值为空is not unll值不为空
in等于列表中的某一个值no in不等于列表中的某一个值
between在两个值之间no between不在两个值之间
like字符串匹配and逻辑与
or逻辑或not逻辑非

查询所有

   from+实体类名

Query query =session.createQuery(from User);Liset<User> list = query.list();

  

条件查询

from +实体类名 +where 实体类名属性名 ?

Query query =session.createQuery(from User u where u.id=? and u.name=?);query.setParameter(1,5);query.setParameter(2,"小明");//向问号里面设置值,有几个问号设置几个List<User> list = query.list();

排序查询

from 实体类 order by 实体类属性 asc(升)或者desc(降)

分页查询

mysql实现分页 limit关键字,而在hql中语句中不能写limit所有我们得用hibernate的query对象封装的两个类实现分页

Query query = session.createQuery(User);//设置开始位置query.setFirstResult(0);//设置结束位置query.setMaxResults(3);

投影查询

select 实体类属性名 1 ,实体类名2   from +实体类名

聚集函数查询

聚集函数 count记录数  , sum 相加, avg 平均, max  最大 ,min  最小 

select count(*) from 实体类名

更新

使用executeUodate()方法

String hql ="update User set age=23 where age = 20"Query query = session.createQuery(hql);query.executeUpdate();

删除

通过使用executeUodate()方法也可以实现删除

String hql ="delete from User where age 20"Query query = session.createQuery(hql);query.executeUpdate();

  ps:HQL语句它采用的面向对象的查询方式,并提供了丰富和灵活的查询特征,hibernate中将HQL作为官方推荐的标准查询方式。

下节:另外一种数据查询接口-----Criteria接口(QBC)

Hibernate学习笔记(5)---Query接口

原文地址:http://www.cnblogs.com/durui/p/7587997.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved