HQL数据查询(Hibernate推荐)

简介: HQL数据查询(Hibernate推荐)

HQL是Hbernate官方推荐使用的查询语句

HQL的语句形式:select...from...where..group by..having...order by...

HQL对关键字大小写不敏感,习惯上小小小写,对JAVA等属性名称大小写敏感

    ---Query的使用----

例:String hql="from Sellor";//Sellor是一个类名

   Query query=session.createQuery(hql);

   List<Sellor>  sellors=query.list();

   for循环查看数据

别名的使用

   String hql=“from Sellor  as  sellor”

或者 String hql=“from Sellor   sellor”

-----------select语句

1.以Object[]形式返回选择的属性

 默认情况下是这种形式

 String hql="select s.name, s.tel from Seller s";

 Query query=session.createQuery(hql);

 List<Object[]> lists=query.list();

 for(Object[] objs:lists){ syso(objs[0])}

 注意:如果select后面只有一个属性,将返回object类型

 

2.以List形式返回选择的属性

  String hql="select new list(s.name, s.tel) from Seller s";

 Query query=session.createQuery(hql);

 List<list> lists=query.list();

 for(List list:lists){ syso(list.get(0))}


3.以map形式返回选择的属性

  String hql="select new Map(s.name, s.tel) from Seller s";

 Query query=session.createQuery(hql);

 List<Map> maps=query.list();

 for(Map list:maps){ syso(map.get("name"))}

4以自定义类型返回选择的属性(选哪几个属性在类里面建包含这几个属性的构造器)

  String hql="select new Sellor(s.name, s.tel) from Seller s";

 Query query=session.createQuery(hql);

 List<Seller> sellers=query.list();

 for(Seller seller:sellers){ syso(  seller.getName();     )}

 

5以获取独特的结果-distinct关键字

  使用distinct关键字去除查询结果中的重复元素

String hql="select distinct s.xingbie from Seller s";

----------where 限制语句

String hql="from Commodity c where c.price>40";

String hql="from Commodity c where c.price is null";

String hql="from Commodity c where c.price in  (20,40)";

String hql="from Commodity c where c.price between 20 and 40";

字符串匹配

 1 like 关键字

 2 %  任意个字符

   _  一个字符

查询单个对象

 String hql="from Commodity c where c.price =30";

order by关键字

 String hql="from Commodity c order by  price asc";


目录
相关文章
|
3月前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age &gt; 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
59 0
|
3月前
|
SQL Java 数据库连接
|
3月前
|
缓存 Java 数据库连接
什么是 Hibernate 查询语言或 HQL?
【8月更文挑战第21天】
119 0
|
3月前
|
SQL 安全 Java
|
5月前
|
SQL Java 数据库连接
技术经验分享:Hibernate之HQL
技术经验分享:Hibernate之HQL
31 0
|
6月前
|
SQL Java 数据库连接
Hibernate - HQL对象检索详解
Hibernate - HQL对象检索详解
55 0
|
SQL Java 数据库连接